课程
/后端开发
/Java
/Java入门第三季
为什么要新建一个对象直接在第一个对象上修改姓名不行吗
比如这样 st.name = console.next();
students.put(ID,st)
2017-07-06
源自:Java入门第三季 5-4
正在回答
st.name是个value值
例 st.name是“小明”
“小明”=“小红”?无法付值,左边必须为一个变量
这是我的理解
不新建的话你也需要先将输入ID对应的学生对象取出来再做修改,不然你的st对象是哪里来的,你可以自己试试
上面的答案有点问题,我还需要去测试一下。感觉有点说不通。
正常来讲,学生类的名字变量都需要用私有的修饰符private修饰。这样就需要封装,使用get和set方法获得或者设置名字。实例化有参数的构造器(获得一个对象)就会传入名字和ID。这个时候调用set方法是不能设置名字的,因为封装保证了变量的安全性。如果使用一个无参数的构造器。然后在使用set方法设置名字,那么就是创建了一个新的对象,没有起到修改的作用。你需要去把学生类里面的name属性的修饰符改成private的。然后将属性封装。
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧
1 回答关于new创建对象????
2 回答关于map中的put方法
2 回答关于添加新对象的问题
3 回答string对象的创建
3 回答put()方法传参数问题