JAVA课后问题汇总(第四次课)

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、

 

如果直接在静态方法中初始化含有实例对象的类会报错:

 

 可以采用这样的方法来调用:

 

posted on 2019-10-15 07:23  pjhhh  阅读(118)  评论(0编辑  收藏  举报