【发布时间】:2017-03-17 19:57:53
【问题描述】:
public class Window
{
protected int size;
public Window()
{
size=1;
System.out.println("Window size="+size);
}
public Window(int size)
{
this.size=size;
System.out.println("Window size="+size);
}
public void setSize(int x)
{size += x;}
public void printSize()
{System.out.println("Size=" + size);}
}
public class RunWindow
{
public static void main (String[] args)
{
Window w1=new Window();
Window w2=new Window(2);
System.out.println(w1.size);
System.out.println(w2.size);
}
}
当一个未初始化的变量与没有参数的构造函数中的局部变量同名并且仅初始化局部变量时,有人可以解释一下它是如何工作的吗?我注意到,当我运行下面的示例时,当我在 main 中打印 w1 对象的大小值时,未初始化的实例变量采用局部变量的值。 还有一个问题。如果这发生在方法内部而不是构造函数内部,这会改变吗? 提前致谢。我是java新手,所以要温柔。
【问题讨论】:
-
请缩进您的代码。
-
它是缩进的……我的英文不太好,如果你能解释一下
-
您的代码都在一个缩进级别,不符合 Java 编码约定。缩进代码的请求是为了解决这个问题,而您还没有这样做。您在此处的代码并未说明“仅初始化局部变量”或“未初始化的实例变量采用局部变量的值”。在每种情况下,代码中的实例变量都会被初始化。您也没有显示输出,也没有显示您的预期,也没有解释它们的不同之处。您的代码显示的是成员变量的初始化。
-
我的问题在下面得到了回答。我可以添加输出,但我不明白局部变量和实例变量定义之间的区别。所以我的标题是错误的,对代码的理解也是错误的。我可以删除整个问题,但我的帐户会出现问题。
标签: java variables initialization instance local