加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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、

?

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

?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读