qq_西伯利亚狼_12
2017-07-06 19:07
为什么要新建一个对象直接在第一个对象上修改姓名不行吗
比如这样 st.name = console.next();
students.put(ID,st)
st.name是个value值
例 st.name是“小明”
“小明”=“小红”?无法付值,左边必须为一个变量
这是我的理解
不新建的话你也需要先将输入ID对应的学生对象取出来再做修改,不然你的st对象是哪里来的,你可以自己试试
上面的答案有点问题,我还需要去测试一下。感觉有点说不通。
正常来讲,学生类的名字变量都需要用私有的修饰符private修饰。这样就需要封装,使用get和set方法获得或者设置名字。实例化有参数的构造器(获得一个对象)就会传入名字和ID。这个时候调用set方法是不能设置名字的,因为封装保证了变量的安全性。如果使用一个无参数的构造器。然后在使用set方法设置名字,那么就是创建了一个新的对象,没有起到修改的作用。你需要去把学生类里面的name属性的修饰符改成private的。然后将属性封装。
Java入门第三季
409792 学习 · 4340 问题
相似问题