请问为什么是在构造方法中实例化而不是直接在声明时实例化?

来源:4-3 学生选课--创建学生类和课程类

sadfiy

2017-02-23 14:00

这样写有什么好处?

写回答 关注

2回答

  • 没有梦想的咸魚
    2017-02-23 17:18:59
    已采纳

    你理解错了,构造方法中实例化是为了初始化对象的属性。例如:this.courses=new HashSet();这边的实例化的目的是为了后面调用student的courses属性。

    而声明时实例化,是将对象实例化,然后再调用。例如:Student st=new Student();这边的是实例化Student的对象st,然后后面就可以调用st.courses属性。

    如果构造器中不实例化这个courses,那你声明时就算将对象实例化了也无法调用。

    两者的含义不同,无可比性。

    居正w

    为什么会被采纳,这回答是错的阿... 楼下的回答才是对的

    2018-06-30 20:32:51

    共 3 条回复 >

  • 慕后端7408475
    2018-05-14 16:46:33

    执行顺序的问题,不过结果都是一样的

    先不考虑继承关系,执行顺序为:

    1.静态字段(执行且仅执行一次,线程安全)

    2.静态构造方法(执行且仅执行一次,线程安全)

    3.实例字段

    4.实例构造方法


Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题