Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
public class Rechnung {
private Rechnungsposition pos[];
private int billId;
private String date;
private double all;
public Rechnung(int bid, String date, Rechnungsposition... a) {
setBillId(bid);
setDate(date);
setAll(a);
setPos(a);
}
public int getBillId() {
return billId;
}
public String getDate() {
return date;
}
public double getAll() {
return all;
}
public void setBillId(int b) {
this.billId = b;
}
public void setDate(String d) {
this.date = d;
}
public void setAll(Rechnungsposition... a) {
all = 0;
for (Rechnungsposition i : a) {
all += i.get_gPrice();
}
}
public void setPos(Rechnungsposition... a) {
if (a.length <= 20) {
this.pos = a;
} else {
System.err.println("Zuviele Rechnungspositionen");
}
}
public void getPos(){
int i=-1;
do{
i++;
System.out.println(pos[i]);
} while (i<pos.length);
}
@Override
public boolean equals(Object o) {
return false;
}
@Override
public String toString() {
return "Rechnungsnummer: "+billId+" Datum: "+date+" Rechnungspositionen: \n"+getPos()+"\nGesamtpreis: "+all+"0€\n";
}
}
Was ich möchte: getPos soll mir für jede rechnung soviele rechnungspositionen anlegen wie es rechnungspositionen im array pos[] gibt. Rechnungspositionen sind angelegte objekte welche 2 attribute beinhalten. Eine Menge und einen Artikel. also wenn eine rechnung 3 rechnungspositionen hat, möchte ich alle 3 rechnungspositionen ausgegeben haben.
Rechnungspositionen haben auch eine überschriebene toString Methode falls das wichtig ist, die funktioniert auch schon.
Problem ist nur das array, wie kann ich dafür sorgen das immer alle elemente ausgegeben werden statt nur 1? mit einer return methode gehts ja auch nicht, weil nach einem return ist schluss und so wird mir angegeben das die methode nicht mit "+"verwendet werden kann.
Deine getPos hat keinen Rückgabewert, daher kannst Du kein + verwenden.
Deine getPos könnte das pos[] zurückgeben, und in der toString Methode gehst Du das Array dann durch und gibst die Positionen aus. Wäre eine Möglichkeit.