来自Java入门第三季6-2中01:09中的疑问,求老鸟解释

来源:6-2 学生选课---判断 Set 中课程是否存在

寻水的鱼丶

2016-08-08 16:01

为什么要这样做,有什么好处,如果不这样做我该怎么做



写回答 关注

3回答

  • 海哥来了
    2016-08-14 20:07:58
    已采纳

    t1.studentForEach(t1.student);

    当需要遍历student的Courses(Set集合)的时候,可以直接传入成员变量t1.student

    否则如果student声明在方法里就是局部变量了。student是作为SetTest类的成员的。


    console也定义为该类的成员变量,而不是放在用到的方法中声明是因为:

    console在多个方法中都需要用到,所以作为类成员就只需分配一次堆内存,否则多个方法重新定义Scanner类变量,需要分配多次内存。

    寻水的鱼丶

    非常感谢!

    2016-08-15 09:46:34

    共 1 条回复 >

  • 磁单极
    2016-08-08 16:31:13

    在构造方法中对成员变量进行赋值,有利于节省内存,因为只有在setTest这个类被实例化的时候,这两个成员变量才会被赋值。当然也可以在定义这个变量的时候就直接初始化。这样影响应该不是很大。

    磁单极 回复寻水的鱼丶

    你是不是说,为什么定义console和courseToSelect属性的时候,为什么不直接初始化赋值,而是放在构造方法里面再去赋值。因为构造方法,是在实例化setTest这个类的时候才会被调用,当你需要的时候再去初始化赋值,这样对内存的节约有帮助。

    2016-08-08 19:48:12

    共 2 条回复 >

  • 小幕1314
    2016-08-08 16:28:29

    你说的是为什么要创建Student类型的student属性吗

Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题