1、动手动脑
由于类中定义了需要参数的构造方法,导致系统不再提供默认的构造方法。
2、java字段初始化规律
源码如下:
1 public class InitializeBlockClass { 2 { 3 field = 200; 4 } 5 public int field = 100; 6 public InitializeBlockClass(int value){ 7 this.field = value; 8 } 9 public InitializeBlockClass(){ 10 11 } 12 public static void main(String[] args) { 13 // TODO Auto-generated method stub 14 InitializeBlockClass obj = new InitializeBlockClass(); 15 System.out.println(obj.field); 16 17 obj = new InitializeBlockClass(300); 18 System.out.println(obj.field); 19 } 20 21 }
运行结果如下:
显然,java字段在初始化时优先按照对应调用的构造方法执行。若构造方法中没有对变量进行初始化,对于变量定义时初始化与初始化块,排在后面的将会覆盖前面的。
3、动手动脑:静态初始化块的执行顺序
1.静态初始化块只执行一次;2.创建子类型的对象时,也会导致父类型的静态初始化块的执行。
4、
如果直接在静态方法中初始化含有实例对象的类会报错:
可以采用这样的方法来调用:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。