數(shù)組的新建和引用
老師,我把你最后的綜合練習(xí)做了個擴展,遇到點小問題,求指教: 我創(chuàng)建了一個類car public?class?Car?{ public?String?name; public?int?rent; public?int?num; public?int?capacity; public?int?day; }
主程序中創(chuàng)建一個數(shù)組,存儲數(shù)據(jù)
Car cars[] = {
new Passenger("奧迪A4", 500, 4, 0),
new Passenger("馬自達(dá)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是子類,沒有問題
我新建了一個數(shù)組,Car cs[] = new Car[b],用來存儲選擇的車輛
b為選擇的車輛數(shù)量
想通過這樣的方式來租用多輛同型號的車。
選擇車輛時出了問題:
System.out.print("請輸入第"+i+"輛車的序號:");
int c = input.nextInt();
cs[i-1] = cars[c-1];
我用這種方式選車
不重復(fù)時很順利
但重復(fù)時,比如我選2輛“皮卡雪6”,第一輛租用5天,第二輛租用2天。
但輸入第二輛租用2天后,第一輛的租用時間也會變成2天。
我debug測試了一下,
發(fā)現(xiàn)在改變cs數(shù)組中對于參數(shù)時,cars中的參數(shù)也改變了
而且選第二輛車cs[1]時,cs[0]也會跟著改變。
求教:
是不是?cs[i-1] = cars[c-1]; 這種方法只是把cs[i-1]位置指向了cars[c-1],而沒有新建cs[i-1]的內(nèi)存空間
我想新建一個內(nèi)存空間 ?賦值與?cars[c-1] 相同。
應(yīng)該怎么做?
2015-06-08
是的,你這樣做的方法只是把cs[i-1] 這個位置所在的元素,替換成cars[c-1]這個玩意。
如果你想新建一個內(nèi)存,這個用數(shù)據(jù)是實現(xiàn)不了的,你可以學(xué)習(xí)第三季中的list集合
2015-06-08
我弄了個2重數(shù)組,基本達(dá)到要求了,但感覺好復(fù)雜