为了账号安全,请及时绑定邮箱和手机立即绑定

关于put方法创建新对象的问题

为什么要新建一个对象直接在第一个对象上修改姓名不行吗

比如这样 st.name = console.next();

students.put(ID,st)


正在回答

4 回答

st.name是个value值

例 st.name是“小明”

“小明”=“小红”?无法付值,左边必须为一个变量

这是我的理解

0 回复 有任何疑惑可以回复我~

不新建的话你也需要先将输入ID对应的学生对象取出来再做修改,不然你的st对象是哪里来的,你可以自己试试

0 回复 有任何疑惑可以回复我~

上面的答案有点问题,我还需要去测试一下。感觉有点说不通。

0 回复 有任何疑惑可以回复我~

正常来讲,学生类的名字变量都需要用私有的修饰符private修饰。这样就需要封装,使用get和set方法获得或者设置名字。实例化有参数的构造器(获得一个对象)就会传入名字和ID。这个时候调用set方法是不能设置名字的,因为封装保证了变量的安全性。如果使用一个无参数的构造器。然后在使用set方法设置名字,那么就是创建了一个新的对象,没有起到修改的作用。你需要去把学生类里面的name属性的修饰符改成private的。然后将属性封装。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409792    人
  • 解答问题       4340    个

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

进入课程

关于put方法创建新对象的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信