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

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

數組的新建和引用

老師,我把你最后的綜合練習做了個擴展,遇到點小問題,求指教:
我創建了一個類car
public?class?Car?{
	public?String?name;
	public?int?rent;
	public?int?num;
	public?int?capacity;
	public?int?day;
}

主程序中創建一個數組,存儲數據

Car cars[] = {

new Passenger("奧迪A4", 500, 4, 0),

new Passenger("馬自達6", 400, 4, 0),

new Pickup("皮卡雪6", 450, 4, 2, 0),

new Passenger("金龍", 800, 20, 0),

new Van("松花江", 400, 4, 0),

new Van("依維柯", 1000, 20, 0)

};

Passenger、Pickup、Van是子類,沒有問題

我新建了一個數組,Car cs[] = new Car[b],用來存儲選擇的車輛

b為選擇的車輛數量

想通過這樣的方式來租用多輛同型號的車。

選擇車輛時出了問題:

System.out.print("請輸入第"+i+"輛車的序號:");

int c = input.nextInt();

cs[i-1] = cars[c-1];

我用這種方式選車

不重復時很順利

但重復時,比如我選2輛“皮卡雪6”,第一輛租用5天,第二輛租用2天。

但輸入第二輛租用2天后,第一輛的租用時間也會變成2天。

我debug測試了一下,

發現在改變cs數組中對于參數時,cars中的參數也改變了

而且選第二輛車cs[1]時,cs[0]也會跟著改變。

求教:

是不是?cs[i-1] = cars[c-1]; 這種方法只是把cs[i-1]位置指向了cars[c-1],而沒有新建cs[i-1]的內存空間

我想新建一個內存空間 ?賦值與?cars[c-1] 相同。

應該怎么做?

正在回答

2 回答

是的,你這樣做的方法只是把cs[i-1] 這個位置所在的元素,替換成cars[c-1]這個玩意。

如果你想新建一個內存,這個用數據是實現不了的,你可以學習第三季中的list集合

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

xiele 提問者

似乎是明白了,謝謝
2015-06-08 回復 有任何疑惑可以回復我~

我弄了個2重數組,基本達到要求了,但感覺好復雜

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

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531144    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

數組的新建和引用

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

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

幫助反饋 APP下載

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

公眾號

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