构造函数的目的是初始化字段的值,设置对象的初始状态.那么如果构造函数中没有初始化某些字段或所有字段会发生什么?
它是否在用户定义构造函数之前调用JVM提供的默认构造函数?
那么,在这个例子中,会输出什么?
class Name{
int x;
boolean y;
Name(){
// no initialize
}
public static void main(){
Name n = new Name();
System.out.println(n.x + ", " + n.y);
}
}
Run Code Online (Sandbox Code Playgroud)
类级字段(实例或静态字段)获取分配给它们的默认值.这意味着如果构造函数或实例(或静态)初始化块未显式初始化这些字段,则将保留默认值.
在你的情况下:
class Name{
int x; //default value for int is 0
boolean y; //default value for boolean is false
Run Code Online (Sandbox Code Playgroud)
换句话说,你的输出应该是 0, false
此问题包含有关基本类型的实际默认值的详细信息.对于Object数据类型,默认值为null(另请参阅数据类型文档).
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |