问答详情
源自:4-3 学生选课--创建学生类和课程类

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

这样写有什么好处?

提问者:sadfiy 2017-02-23 14:00

个回答

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

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

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

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

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

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

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

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

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

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

    3.实例字段

    4.实例构造方法