# Assoziation Bestellung



## Xpisto (6. Feb 2011)

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:


```
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 (6. Feb 2011)

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 (6. Feb 2011)

Ok, und was schlägst du vor?

Etwa so:

[Java]
public void addBestellung(Bestellung eineBestellung)
	{

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


	}
[/code]


----------



## Final_Striker (6. Feb 2011)

Sieht schon mal besser aus als die alte Version.


----------



## Xpisto (6. Feb 2011)

Nur kriege ich jetzt bei der ausgabe die Speicheradresse...

Sieht so aus:

Bestellung@19821f


----------



## Final_Striker (6. Feb 2011)

Und was willst du haben?


----------



## Xpisto (6. Feb 2011)

Die.Ausgabe soll die Bestellung also un Pizza und die tischnr sein, also all das was ich in der Main erzeugt habe


----------



## Final_Striker (6. Feb 2011)

Dann musst du die toString-Methode überschreiben. Das wurde dir übrigens auch schon mal hier im vorletzten Post erklärt.

http://www.java-forum.org/hausaufgaben/112869-assoziation-programmieren.html


----------



## Xpisto (9. Feb 2011)

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


----------

