public class Test{
int i;
Test(){
System.out.println(i);
}
public static void main(String[] args){
Test obj=new Test();
}
}
输出= 0为什么以及如何通过Java中的构造函数初始化实例变量进行初始化?
P.S:我在Java的幼稚所以这个问题可能是非常愚蠢的。我期待你的支持。谢谢
public class Test{
int i;
Test(){
System.out.println(i);
}
public static void main(String[] args){
Test obj=new Test();
}
}
输出= 0为什么以及如何通过Java中的构造函数初始化实例变量进行初始化?
P.S:我在Java的幼稚所以这个问题可能是非常愚蠢的。我期待你的支持。谢谢
编译器会将未初始化的静态/实例字段设置为默认值。
表波纹管指示数据类型的默认值:
+--------------------------+----------------------------+
| Data Type | Default Value (for fields) |
+--------------------------+----------------------------+
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0L |
| float | 0.0f |
| double | 0.0d |
| char | '\u0000' |
| String (or any object) | null |
| boolean | false |
+--------------------------+----------------------------+
欲了解更多信息,可以看到该文档here
@GauravDave,谢谢你的反馈。 – nnunes10
见,每Instance-Variable or Class-Variable
通过它初始化的default value
如果实例变量是一些引用类型,那么它将是 始终分配它的默认值为
null
所以,在这里,你的情况是int
原始类型,其default
值0(zero)
这就是你的了,把得到0
的原因。
这就是Java定义*的方式。阅读JLR - Java语言参考 - 了解详细信息。 –
int的默认值是0 – Abdelhak
当您将int声明为“字段”(类变量)时,它会自动使用值“0”进行初始化,但当属于其他方法时,为“null” –