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 tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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