亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

使用get(ID).name獲取學生姓名和直接用st.name有什么區別

students.get(ID).name 為什么不能替換成 st.name,試過會報錯


正在回答

2 回答

老師的testPut方法如下(應該是一模一樣的)
(多行注釋的地方是我解釋的部分)

public?void?testPut()?{		
????//創建一個Scanner對象,用來獲取輸入的學生ID和姓名
????Scanner?input=new?Scanner(System.in);
????int?i=0;
????while(i<3)?{			
????????System.out.println("請輸入學生ID:");			
????????String?ID=input.next();			
????????//判斷該ID是否被占用			
????????Student?st=students.get(ID);
????????/*
????????*這里的st是Student類的一個對象,
????????*是輸入的ID(key)對應的value
????????*但此時的st不知道他是不是空值(null)		
????????*/
????????if(st==null)?{				
????????????//提示輸入學生姓名				
????????????System.out.println("請輸入學生姓名:");				
????????????String?name=input.next();				
????????????//創建新的學生對象				
????????????Student?newStudent=new?Student(ID,name);
????????????/*
????????????*這里的newStudent是Student的一個對象
????????????*用于在students集中存入一個鍵值對
????????????*/			
????????????//通過調用students的put方法,添加“ID-學生”映射				
????????????students.put(ID,?newStudent);	
????????????/*
????????????*要注意的是,此時的st是空值(null)
????????????*而當要輸出對象的屬性時對象為null,就會拋出異常
????????????*所以可以把“students.get(ID).name”改成“newStudent.name”
????????????*此時就不會拋出異常
????????????*/			
????????????System.out.println("成功添加學生:"+students.get(ID).name);			
????????}else?{				
????????????System.out.println("該學生的ID已被占用!");				
????????????continue;			
????????}			
????????i++;
????}
}

希望對你有幫助!?。海?/pre>


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

為什么我這樣改的就沒有報錯

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

舉報

0/150
提交
取消

使用get(ID).name獲取學生姓名和直接用st.name有什么區別

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號