課程
/后端開發(fā)
/Java
/Java入門第三季
students.get(ID).name 為什么不能替換成 st.name,試過會報錯
2020-07-24
源自:Java入門第三季 5-2
正在回答
老師的testPut方法如下(應(yīng)該是一模一樣的) (多行注釋的地方是我解釋的部分) public?void?testPut()?{ ????//創(chuàng)建一個Scanner對象,用來獲取輸入的學(xué)生ID和姓名 ????Scanner?input=new?Scanner(System.in); ????int?i=0; ????while(i<3)?{ ????????System.out.println("請輸入學(xué)生ID:"); ????????String?ID=input.next(); ????????//判斷該ID是否被占用 ????????Student?st=students.get(ID); ????????/* ????????*這里的st是Student類的一個對象, ????????*是輸入的ID(key)對應(yīng)的value ????????*但此時的st不知道他是不是空值(null) ????????*/ ????????if(st==null)?{ ????????????//提示輸入學(xué)生姓名 ????????????System.out.println("請輸入學(xué)生姓名:"); ????????????String?name=input.next(); ????????????//創(chuàng)建新的學(xué)生對象 ????????????Student?newStudent=new?Student(ID,name); ????????????/* ????????????*這里的newStudent是Student的一個對象 ????????????*用于在students集中存入一個鍵值對 ????????????*/ ????????????//通過調(diào)用students的put方法,添加“ID-學(xué)生”映射 ????????????students.put(ID,?newStudent); ????????????/* ????????????*要注意的是,此時的st是空值(null) ????????????*而當(dāng)要輸出對象的屬性時對象為null,就會拋出異常 ????????????*所以可以把“students.get(ID).name”改成“newStudent.name” ????????????*此時就不會拋出異常 ????????????*/ ????????????System.out.println("成功添加學(xué)生:"+students.get(ID).name); ????????}else?{ ????????????System.out.println("該學(xué)生的ID已被占用!"); ????????????continue; ????????} ????????i++; ????} } 希望對你有幫助?。。海?/pre>
為什么我這樣改的就沒有報錯
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
1 回答學(xué)生姓名不能使用中文
3 回答用Calendar獲取date 和 用Date直接獲得 這兩者有什么區(qū)別?正常這兩種的使用場景是什么?
4 回答students.put(ID,newStudent); 這里面添加iD和學(xué)生的映射關(guān)系 為什么要用newStudent ,而不直接用name
2 回答為什么我的獲取不到Id和name?
1 回答為什么是這樣獲取學(xué)生的名字
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2020-07-26
2020-08-07
為什么我這樣改的就沒有報錯