2009-06-01 53 views
0

我有這個構造函數的類:構造函數的參數是對象的數組

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

我有這個構造第二類:

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

我如何獲得一個ARTIKEL進入Warenkorb和artikelliste數組?

回答

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

這是你正在嘗試做什麼?

+0

mmmm ... Kartoffel ...食物是我要記住我的任何德語的唯一途徑。 – 2009-06-01 17:57:59

+0

我希望我拼寫正確:) – willcodejavaforfood 2009-06-01 18:02:30

+0

你的拼寫很棒;)。 我快要嫉妒了,我也想成爲一名java大師...... – mrt181 2009-06-01 18:09:29

2

這是你想要的嗎?

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); 

你的問題是不是你想要做什麼是很清楚......

1

使用可迭代,而不是陣列的替代:

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

仍然可以使用來構建其他基於陣列的語法還有:

new Warenkorb("Buffy", Arrays.asList(new Artikel("foo",0.0), new Artikel("bar",1.0)); 

適用於任何實施IterableArrayListHashSet

2

而且,看起來像你使用Java 1.5+無論如何,嘗試這種另類的Warenkorb:

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

這樣寫的,你可以擺脫醜陋陣列的符號並構建這樣的Warenkorb:

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