課程
/后端開發
/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對象的創建
1 回答關于撲克創建的問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-03-29
st.name是個value值
例 st.name是“小明”
“小明”=“小紅”?無法付值,左邊必須為一個變量
這是我的理解
2017-09-01
不新建的話你也需要先將輸入ID對應的學生對象取出來再做修改,不然你的st對象是哪里來的,你可以自己試試
2017-07-07
上面的答案有點問題,我還需要去測試一下。感覺有點說不通。
2017-07-06
正常來講,學生類的名字變量都需要用私有的修飾符private修飾。這樣就需要封裝,使用get和set方法獲得或者設置名字。實例化有參數的構造器(獲得一個對象)就會傳入名字和ID。這個時候調用set方法是不能設置名字的,因為封裝保證了變量的安全性。如果使用一個無參數的構造器。然后在使用set方法設置名字,那么就是創建了一個新的對象,沒有起到修改的作用。你需要去把學生類里面的name屬性的修飾符改成private的。然后將屬性封裝。