JAVA课后问题汇总(第四次课)
发布时间:2020-12-15 07:24:05 所属栏目:Java 来源:网络整理
导读:1、动手动脑 ? ?由于类中定义了需要参数的构造方法,导致系统不再提供默认的构造方法。 ?2、java字段初始化规律 ? ?源码如下: 1 public class InitializeBlockClass { 2 { 3 field = 200 ; 4 } 5 public int field = 100 ; 6 public InitializeBlockClass(
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、 ? 如果直接在静态方法中初始化含有实例对象的类会报错: ? ?可以采用这样的方法来调用: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |