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