猿问

如果在构造函数中没有初始化或仅初始化某些字段会发生什么

构造函数的目的是初始化字段的值,设置对象的初始状态。那么如果在构造函数中没有初始化某些字段或所有字段会发生什么?


它是否在用户定义的构造函数之前调用了 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);

     }


 }


料青山看我应如是
浏览 188回答 1
1回答

白衣染霜花

类级字段(实例或静态字段)获得分配给它们的默认值。这意味着如果构造函数或实例(或静态)初始化块没有显式初始化这些字段,则将保留默认值。在你的情况下:class Name{      int x;     //default value for int is 0      boolean y; //default value for boolean is false换句话说,你的输出应该是 0, false这个问题有关于原始类型的实际默认值的详细信息。对于 Object 数据类型,默认值为null。
随时随地看视频慕课网APP

相关分类

Java
我要回答