Assoziation Bestellung

Xpisto

Aktives Mitglied
Hi, wieder ich, ich dachte mir um die Übersicht im Forum zu gewährleisten, schriebe ich nicht alle Probleme in einen Thread, da es immer andere Aufgaben sind.

Also kurz zu meiner Situation und warum ich soviel Frage.
Die Klausur für Informatik 1 steht bald an und ich bereite mich derzeit darauf vor. Ich versuche frühere Klausuraufgaben zu programmieren, kann allerdings leider nicht mit Musterlösungen vergleichen weil keine vorhanden sind. Deshalb freu ich mich auf jeden Tipp und auf jede Hilfe von euch :)

Nun zu meinem Problemchen.

Das ist die Aufgabe:




Das ist mein bisheriger Code:

Java:
public class Tisch {
	
	private int nr;
	private final int maxBest = 4;
	private Bestellung [] best = new Bestellung[maxBest];
	private int anzBest;
	
	Tisch(int nr)
	{
		this.nr = nr;
		anzBest=0;
	}
	
	public void addBestellung(Bestellung eineBestellung)
	{

        for(int anzBest = 0; anzBest < best.length; anzBest++)
        {
        	best[anzBest]= eineBestellung;
        	anzBest++;
        	
        }
		
	}
	
	public Bestellung getAuftrag(int pos)
	{
		Bestellung erg;
		
			if (pos >= 0 && pos < anzBest)
			{
					erg = best[pos];
					
			}
			else
			{
					erg = null; 
					
			}
			return erg;
			
			
					
	}

}


____________________


public class Bestellung {
	
	private String bez;
	private Tisch einTisch;
	
	Bestellung(String bez, Tisch einTisch)
	{
		this.bez = bez;
		this.einTisch = einTisch;
		
	}

}

_______________


public class test {

	public static void main(String args[])
	{
		Tisch t1 = new Tisch(1);
		Tisch t4 = new Tisch(4);
		
		Bestellung b1 = new Bestellung("Pizza Capri", t1);
		Bestellung b2 = new Bestellung("Rumpsteak", t1);
		
		Bestellung b3 = new Bestellung("Lasagne", t4);
		
		t1.addBestellung(b1);
		t1.addBestellung(b2);
		
		t1.getAuftrag(1);
		
	}
}

Nun zum Problem, irgendwas läft schief, ich kriege als ausgabe immer nur "null" egal welche Position ich vom Array eingebe, obwohl ich meiner Meinung nach bei der Methode addBestellung alles richtig gemacht habe, ich erkenne leider den Fehler nicht.

Freue mich wie immer auf Antworten :)
 

Final_Striker

Top Contributor
Die for-Schleife in der addBestellung-Methode ist 1. unnötig und 2. sowieso falsch.

Du bekommst immer null zurück, weil die if-Bedingung in der getAuftrag-Methode nicht erfüllt wird, da deine anzBest-Variable immer 0 ist.
 

Xpisto

Aktives Mitglied
Ok, und was schlägst du vor?

Etwa so:

[Java]
public void addBestellung(Bestellung eineBestellung)
{

if(anzBest < best.length)
{
best[anzBest]= eineBestellung;
anzBest++;
}


}
[/code]
 

Xpisto

Aktives Mitglied
Vielen Dank habs hinbekommen, nun eine kleine Zwischenfrage, wieso war meine forschleife genau falsch? Möchte es gerne komplett nachvollziehen können.
 

Neue Themen


Oben