当前位置: 首页 > 面试题库 >

Java实例变量在两个语句中声明和初始化

祖浩淼
2023-03-14
问题内容

嗨,我在使用Java进行初始化时遇到问题,以下代码给了我一个编译错误,叫做:Expected instanceInt = 100; 但我已经宣布了
如果这些东西与堆栈和堆的东西有关,请用简单的术语进行解释,我是Java的新手,并且我对这些领域不了解。

public class Init {

int instanceInt;  
instanceInt = 100;

   public static void main(String[] args) {

     int localInt;
     u = 9000;
     }

}

问题答案:

您不能在课程中间使用语句。它必须与声明位于同一块或同一行中。

做您想要的事情的常用方法是:

  • 声明期间的初始化
    public class MyClass{
    private int i = 0;
    

    }

通常,如果要为字段定义默认值,则是一个好主意。

  • 构造器块中的初始化
    public class MyClass{
    private int i;
    public MyClass(){
        this.i = 0;
    }
    

    }

如果您希望在字段初始化期间具有一些逻辑(如果/循环),则可以使用此块。它的问题在于,要么您的构造函数将彼此调用,要么它们将具有基本相同的内容。
就您而言,我认为这是最好的方法

  • 方法块中的初始化
    public class MyClass{
    private int i;
    public void setI(int i){
        this.i = i;
    }
    

    }

这并不是真正的初始化,但是您可以随时设置值。

  • 实例初始化程序块中的初始化
    public class MyClass{
    private int i;
    {
         i = 0;
    }
    

    }

当构造函数不够用时,可以使用这种方法(请参阅构造函数块的注释),但通常开发人员倾向于避免这种形式。

奖励:

这是什么代码?

public class MyClass {
    public MyClass() {
        System.out.println("1 - Constructor with no parameters");
    }

    {
        System.out.println("2 - Initializer block");
    }

    public MyClass(int i) {
        this();
        System.out.println("3 - Constructor with parameters");
    }

    static {
        System.out.println("4 - Static initalizer block");
    }

    public static void main(String... args) {
        System.out.println("5 - Main method");
        new MyClass(0);
    }
}

答案



 类似资料:
  • 问题内容: 我对Java开关有一个疯狂的问题。 方案1-当为2时,它成功地将值打印为2。 方案2-当我要在其中注释时,saying地说 “本地变量值可能尚未初始化” 。 问题: 场景1:如果执行流程没有转到(当时),那么它如何知道value变量的类型为? 方案2:如果编译器将value变量的类型识别为,则它必须已访问。(声明和初始化)中的表达式。那为什么它会吱吱作响?当我要发表评论时,说 本地变量

  • 问题内容: 我试图编写一个简单的查询,在其中声明一些变量,然后在Oracle的select语句中使用它们。我以前可以在SQL Server中使用以下命令执行此操作: 从我完成的搜索看来,您无法在Select语句中声明和设置像这样的变量。这是对的还是我在发短信? 问题答案: 从我完成的搜索看来,您无法在Select语句中声明和设置像这样的变量。 这是对的还是我错过了什么? 在Oracle PL /

  • 本文向大家介绍tensorflow 声明和初始化可变张量,包括了tensorflow 声明和初始化可变张量的使用技巧和注意事项,需要的朋友参考一下 示例 当值需要在会话中更新时,使用可变张量。这是在创建神经网络时将用于权重矩阵的张量类型,因为这些值将在训练模型时更新。 可以使用或函数声明可变张量。建议使用,因为它提供了更大的灵活性,例如:tf.Variable()tf.get_variable()

  • 问题内容: 我刚刚开始学习go lang,而对于在go lang中声明变量感到困惑 例如我已经声明,里面if … else语句。 但是终端出现错误 好像我在If语句中声明的任何内容都不起作用…我该如何解决? 问题答案: 因为变量仅在声明它们的范围内定义: 去玩 之间的区别,并是仅仅是分配和对变量的声明和分配新建分配FY语法 这个: 等效于: 您可能想要的是:

  • 当我试图运行我的BMI计算器时,我经常遇到这样一个错误“Cannot resolve method'println(java.lang.String,double)”当我试图运行我的BMI计算器时,我如何为一个double类型的变量声明一条语句?请帮帮我。这是我代码的链接

  • 我发现defs循环,主语是由他们的动词定义的,但动词是未定义的!那么你如何定义它们呢? 循环定义 初始化:初始化一个变量。可以在申报时进行。 赋值:给变量赋值。它可以在任何地方完成,只有一次使用final-identifier。 声明:向变量声明值。 “更新,尝试用lambda calc理解主题”