2009-06-01 4 views
0

Ich habe eine Klasse mit diesem Konstruktor:Constructor-Parameter ist ein Array von Objekten

Artikel(String name, double preis){ 
    this.name = name; 
    verkaufspreis = preis; 
    Art = Warengruppe.S; 

Ich habe eine zweite Klasse mit diesem Konstruktor:

Warenkorb(String kunde, Artikel[] artikel){ 
    this.kunde = kunde; 
    artikelliste = artikel; 
    sessionid = s.nextInt(); 
    summe = 0; 
    for(Artikel preis : artikel){ 
     summe += preis.verkaufspreis; 
    } 
} 

Wie bekomme ich einen Artikel in den Warenkorb und das Artikelliste-Array?

Antwort

3
new Warenkorb("Dieter", new Artikel[] {new Artikel("Kartoffel", 0.25))}; 

Ist das, was Sie versuchen zu tun?

+0

mmmm ... Kartoffel ... Essen ist die einzige Möglichkeit, mich an irgendeinen meiner Deutsch zu erinnern. –

+0

Ich hoffe ich habe das richtig geschrieben :) – willcodejavaforfood

+0

Deine Schreibweise ist super;). Ich sterbe vor Eifersucht, ich möchte auch ein Java-Guru sein ... – mrt181

2

Ist das was du willst?

Artikel[] artikels = new Artikel[2]; 
artikels[0] = new Artikel("John Doe", 0); 
artikels[1] = new Artikel("Jane Doe", 1); 
Warenkorb w = new Warenkorb("something", artikels); 

Ihre Frage ist nicht wirklich klar, was Sie tun wollen ...

+0

gut haben wir 2 Möglichkeiten abgedeckt :) – willcodejavaforfood

+0

+1. Genau, du bist wie Tweedle-Dee und Tweedle-Dum. (und ich meinte das auf die bestmögliche Weise :) –

+0

zumindest waren seine Namen eher locale-geeignet ... –

1

Eine Alternative eine Iterable statt eines Array mit:

Warenkorb(String kunde, Iterable<? extends Artikel> artikel){ 
    this.kunde = kunde; 
    artikelliste = artikel; 
    sessionid = s.nextInt(); 
    summe = 0; 
    for(Artikel preis : artikel){ 
      summe += preis.verkaufspreis; 
    } 
} 

noch konstruiert werden kann mit dem andere Array-basierte Syntax aber auch:

arbeitet mit jeder Implementierung von Iterable wie ArrayList oder HashSet etc

2

Und sieht aus wie Sie verwenden Java 1.5+ wie auch immer, versuchen, diese Alternative für Warenkorb:

Warenkorb(String kunde, Artikel...artikel){ 
     this.kunde = kunde; 
     artikelliste = artikel; 
     sessionid = s.nextInt(); 
     summe = 0; 
     for(Artikel preis : artikel){ 
       summe += preis.verkaufspreis; 
     } 
} 

so geschrieben, können Sie von der hässlichen Array-Notation loszuwerden und konstruiere einen Warenkorb wie diesen:

new Warenkorb("Dieter", new Artikel("Kartoffel", 0.25)}; 
new Warenkorb("Günther", new Artikel("Kartoffel", 0.25), new Artikel("Tomate", 0.25)}; 
+0

Ja, Varargs sind der Weg, hier zu gehen. +1 –