24. oktober 2004 - 23:38
Der er
18 kommentarer og 1 løsning
antal instancer i klasse
hej experter.. jeg er ny i java.. så det kan måske godt være mine udtryk ikke er helt korrekte :O vis jeg bruger en constructor til at oprette en instans af min klasse Forfatter: Forfatter f = new Forfatter("dannie"); hvis jeg nu har lavet 8 forskellige forfattere.... hvordan kan jeg tælle det antal?
Annonceindlæg fra Infor
24. oktober 2004 - 23:40
#1
Du laver en static variabel som du tæller op i constrcutor.
24. oktober 2004 - 23:42
#2
public class Forfatter { private static int antal = 0; ... public Forfatter() { antal++; } ... public static int getAntal() { return antal; } }
24. oktober 2004 - 23:42
#3
Forfatter f1 = new Forfatter(); Forfatter f2 = new Forfatter(); Forfatter f3 = new Forfatter(); og Forfatter.getAntal() vil returnere 3
24. oktober 2004 - 23:49
#4
ja tak :D:.. må jeg så være så frælk at spørge hvordan jeg kan udskrive samtlige forfattere ? :)
24. oktober 2004 - 23:53
#5
for(int i = 0; i < 8; i++) { System.out.println(f+i); } skal måske være... System.out.println((f+i)); eller også public String udskriv() { System.out.println(f1); System.out.println(f2); System.out.println(f3); System.out.println(f4); System.out.println(f5); System.out.println(f6); System.out.println(f7); System.out.println(f8); return ""; }
24. oktober 2004 - 23:53
#6
Normalt vel man gemme dem udenfor klassen. ArrayList alle = new ArrayList(); Forfatter f1 = new Forfatter(); all.add(f1); Forfatter f2 = new Forfatter(); all.add(f2); Forfatter f3 = new Forfatter(); all.add(f3); man kunne også gemme en reference til alle instanser i en static variabel i selve klassen. Jeg tror ikke at jeg vil anbefale den løsning. Men jeg kunne godt lave et eksempel. I morgen.
24. oktober 2004 - 23:55
#7
vil lige sige denne kode også var til array.. for(int i = 0; i < 8; i++) { System.out.println(f[i]); } så ved ikke om for(int i = 0; i < 8; i++) { System.out.println(f+i); } virker
24. oktober 2004 - 23:56
#8
hmm!.. problemet er at alle mine forfattere har samme navn :S... alle hedder Forfatter Forfatter =new Forfatter();
24. oktober 2004 - 23:57
#9
så overwriter de vel hele tiden hinanden?
24. oktober 2004 - 23:57
#10
hmm!.. hvordan kan jeg så lave 3 FORSKELLIGE forfatter.. når de genereres i en while?..
24. oktober 2004 - 23:58
#11
Det skal du have lavet om på. Min anbefaling vil være at gemme dem i en ArrayList.
24. oktober 2004 - 23:59
#12
ArrayList alle = new ArrayList(); while(noget) { Forfatter f = new Forfatter(); alle.add(f); } virker fint !
24. oktober 2004 - 23:59
#13
Når du vil have fat på dem igen så gør du bare: for(int i = 0; i < alle.size(); i++) { Forfatter f = (Forfatter)alle.get(i); // gør noget med f }
25. oktober 2004 - 00:00
#14
og vælger du den løsning skal du huske at importere Arraylist... ligger i java.util mener jeg
25. oktober 2004 - 00:00
#15
det vil sige.. jeg kan godt kalde dem alle f.. men det er bare ikke smart?... og hvad er alternativet?
25. oktober 2004 - 00:00
#16
[kunne laves lidt fixere i Java 1.5/5 men skidt pyt med det]
25. oktober 2004 - 00:00
#17
Hvis du gemmer dem i en ArrayList er det ligegyldigt havd de hedder da de gemmes på position og hentes frem igen på position (se 23:59:50 koden).
25. oktober 2004 - 00:02
#18
TUSIND TAK arve_V... det var sq kanon du gad hjælpe.. igen igen ;)... smider du et svar? :)
25. oktober 2004 - 00:03
#19
svar
Kurser inden for grundlæggende programmering