02. november 2002 - 13:54
Der er
17 kommentarer og 1 løsning
konkatenering
Hvordan gør jeg det ? Her er aktivSpiller = 1, og den skal så danne objektet pHand1 og nedenunder skal den køre metoder på den. if(p == [pHand + aktivSpiller]) ---------------------------- [pSvup + aktivSpiller].addCardsFrom([pStik + aktivSpiller], 0, 1); ---------------------------- Hvad gør jeg ? skal jeg oprette en variabel pHand (uden tal), og i så fald er det jo (stadig) en string + en int, der skal blive til et objekt !?! HJÆLP man kan skrive this[pHand + ... Men så duer det alligevel ikke
Annonceindlæg tema
02. november 2002 - 13:56
#1
du vil sætte en string og en int sammen ? altså noget ala: String temp1 = "1"; int temp2 = 2; og så sammensætte dem så det bliver 12 (int værdi) ?
02. november 2002 - 13:58
#2
hvis det er tilfældet kan det gøres med: String temp1 = "1"; int temp2 = 2; temp1 += "" + temp2; int samletVærdi = Integer.parseInt(temp1);
02. november 2002 - 13:59
#3
Du kan se i min kode, hvad jeg vil ! i stedet for at skrive: if(tal == 1) { objekt1.gørNoget(); } else if(tal == 2) { objekt2.gøtNoget(); } Vil jeg skrive [objekt + tal].gørNoget();
02. november 2002 - 14:02
#4
ahh, ok. så skal du oprettet et array af objekter istedet for hver for sig. altså: MitObjekt objekt[] = new MitObjekt[12]; for(int i=0;i<objekt.length;i++) { objekt[i] = new MitObjekt(..); } switch(tal) { case 1: objekt[1].doStuff(); break; case 4: objekt[4].doStuff(); break; default: //tjaaa ?? break; }
02. november 2002 - 14:08
#5
Måske var mit eksempel dårligt. Dit forslag kræver jo lige så mange linier. aktivSpiller = 1; _root["pHand" + aktivSpiller].gørNoget(); Dette er flash kode, og resulterer i at objektet med navn pHand1 bruges. Nøjagtig som hvis man havde skrevet: _root.pHand1.gørNoget(); Man må kunne gøre det samme i java ?!
02. november 2002 - 14:12
#7
nej, det kan ikke gøres sådan som du gerne vil have.
02. november 2002 - 14:18
#8
Ja. det har vi... Men jeg har åbenbart ikke fattet det endnu !! I dette tilfælde vil det så sige at jeg skal oprette nogle arrays: String pHand[] = {"", "pHand1", "pHand2"}; Og kan så senere skrive: pHand[aktivSpiller].addCardsFrom(pStik[aktivSpiller], 0, 1); Har jeg forstået det nu (o; ??
02. november 2002 - 14:25
#9
nej, dit eksempel dur ikke.. du opretter et String array og forsøger at aktivere en metode som ikke findes på String (addCards..).
02. november 2002 - 14:26
#10
hov, forresten så kan: switch(tal) { case 1: objekt[1].doStuff(); break; case 4: objekt[4].doStuff(); break; default: //tjaaa ?? break; } forkortes til: objekt[tal].doStuff(); det var lige en tanke bøf.
02. november 2002 - 14:30
#11
Jeg tror faktisk den er der nu. I dette tilfælde skal metoden addCardsFrom køres på et objekt af klassen Pile. Ergo skal jeg skrive... Pile pHand[] = {"", "pHand1", "pHand2"}; og pHand[aktivSpiller].addCardsFrom(.................... Er det ikke korrekt ?
02. november 2002 - 14:33
#12
tjaaa, umiddelbart ser det korrekt ud. jeg er (stadig) ikke sikker på at man kan "liste initialisere" objekter på den måde, derfor skrev jeg: for(int i=0;i<objekt.length;i++) { objekt[i] = new MitObjekt(..); } men, hvis det kan kompilere (og virker) så er det sikkert ok.
02. november 2002 - 14:41
#13
Nej, den er ikke helt vild med det )o; Jeg har nu skrevet: Pile pHand[] = new Pile[3]; Pile pStik[] = new Pile[3]; Pile pSvup[] = new Pile[3]; for(int i=0;i<pHand.length;i++) { pHand[i] = new pHand(); pStik[i] = new pStik(); pSvup[i] = new pSvup(); } Det duer ikke. ??
02. november 2002 - 14:45
#14
Det skal selvfølgelig være... for(int i=0;i<pHand.length;i++) { pHand[i] = new Pile(); pStik[i] = new Pile(); pSvup[i] = new Pile(); } Men den markerer "for" som en fejl, og siger: An Error occured parsing a type declaration due to expecting type name, the type could not be saved
02. november 2002 - 14:51
#15
dvs. du har skrevet: Pile pHand[] = new Pile[3]; Pile pStik[] = new Pile[3]; Pile pSvup[] = new Pile[3]; for(int i=0;i<pHand.length;i++) { pHand[i] = new Pile(); pStik[i] = new Pile(); pSvup[i] = new Pile(); } og så kommer den med fejlen ? jeg kan ikke se noget forkert i koden..
02. november 2002 - 14:58
#16
Hvis jeg bare skriver: Pile pHand[] = new Pile[3]; Pile pStik[] = new Pile[3]; Pile pSvup[] = new Pile[3]; pHand[0] = new Pile(); Markerer den nul, og skriver expecting ] !?!? Hvad sker der ??
02. november 2002 - 15:03
#17
det virker lidt mystisk, for følgende virker fint og er jo faktisk det samme (bort set fra Objekt typerne): Object objs[] = new Object[3]; objs[0] = new Object(); du har ikke tastet 'o' eller 'O' istedet for '0' eller sådan noget ?
02. november 2002 - 15:05
#18
Det var fordi jeg oprettede piles'ne pHand1 osv. i en anden metode også )o; Den er der nu - mange tak for hjælpen
Kurser inden for grundlæggende programmering