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

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

誰能為我解答一下謝謝,基礎不好

54c45c310001c59805000354.jpg問題也在圖片上

正在回答

2 回答

? ? ? public void AddTest(){

? ? ? ? ? ? for(int i=0;i<3;i=i){

? ? ? ? ? ? ? ? ? ? String ID=JOptionPane.showInputDialog("輸入學生id"); ? ? ? //我用的是對話框輸出,作用一樣的

? ? ? ? ? ? ? ? ? ? Student stu=students.get(ID); ? ? ? ? ? //這里get(ID)是獲得"K(ID)"所對應的"V"

? ? ? ? ? ? ? ? ? ?if(stu==null){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//stu在此代表的并不是"K(ID)",而是"V"

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?String name=JOptionPane.showInputDialog("輸入學生姓名");

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?stu=new Student(ID, name); ? ? ? ? ? //在此我沒創建新對象還是用的stu

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?students.put(ID, stu); ? ? ? ? ? ? ? ? ? ? ? //把ID與stu賦予聯系,是他倆存在映射

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?System.out.println("添加學生:"+students.get(ID).name);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?i++;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}else{

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?System.out.println("該ID被占用");

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?continue;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ? ? ?}


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

students應該是一個集合,調用get()方法返回的是一個Student類型的對象,st是對這個對象的引用,可以認為是保存著這個對象的地址,st==null意味著st是一個空的引用。

跟c的指針是一樣的,指針本身保存的內存地址,指針的類型說明它所指向的對象的類型。

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

Vleyong 提問者

是不是只要是引用 都保存的是對象的地址?還有引用的格式是不是:類型 引用名=集合.方法名() 這種形式?
2015-01-25 回復 有任何疑惑可以回復我~
#2

仗劍闖江湖 回復 Vleyong 提問者

引用保存的對象的地址。 引用沒有什么格式,當你把一個對象賦值給變量的時候,并不是把對象本身給這個變量,而是這個對象的地址。 在你這圖片里Student newStudent=new Student(ID,name);這個語句new Student(ID,name)是創建一個對象,然后賦值給Student類型的變量newStudent。
2015-01-25 回復 有任何疑惑可以回復我~
#3

Vleyong 提問者 回復 仗劍闖江湖

后者的創建對象并賦值,賦的是Student里面的參數值吧?應該不是地址吧
2015-01-26 回復 有任何疑惑可以回復我~
#4

仗劍闖江湖 回復 Vleyong 提問者

一個對象有一堆屬性和一堆方法,你說賦哪個?而且對象的屬性還會變來變去,唯一不變的只有對象的地址,你拿到這個地址,想做什么操作或者取哪個屬性,直接到那個地址去找就OK了。
2015-01-26 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消

誰能為我解答一下謝謝,基礎不好

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

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

幫助反饋 APP下載

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

公眾號

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