Objekt einer anderen Klasse als Parameter im Konstruktor

mcbek

Mitglied
Hallo und frohes neues Jahr,

wie ihr schon im Titel sehen könnt, habe ich ein problem.

Ich muss laut UML Diagramm, als Parameter für den Konstruktor einer Klasse, ein Objekt aus einer anderen Klasse übergeben.
Da ich mich nicht so gut mit Java auskenne weiß ich nicht wie das zu machen ist.

als beispiel
Code:
public class Hamster {
	
	private int posZ, posS, anzKoerner;
	private Richtung orientierung;
	
	public Hamster(int posZ, int posS, Richtung orientierung, Hamsterland land)
	{
		this.posZ = posZ;
		this.posS = posS;
                //für orientierung und land weiß ich nicht wie ich das schreiben soll
               //google konnte mir auch nicht so richtig helfen
	}
	

}


Ich bedanke mich schon im Voraus
 
Hallo mcbek,

Das geht gleich wie für die anderen Datentypen. So wie du es für int machst, kannst du das auch für Richtung und Hamsterland machen.

Code:
public class Hamster 
{
	
	private int posZ, posS, anzKoerner;
	private Richtung orientierung;
	private Hamsterland land;
	
	public Hamster(int posZ, int posS, Richtung orientierung, Hamsterland land)
	{
		this.posZ = posZ;
		this.posS = posS;
		this.orientierung = orientierung;
		this.land = land;
	}
}
 
Code:
	private int posZ, posS, anzKoerner;
	private Richtung orientierung;
	
	
	public Hamster(int posZ, int posS, Richtung orientierung, Hamsterland land)
	{
		this.posZ = posZ;
		this.posS = posS;
		this.orientierung = orientierung;
		land = new Hamsterland(posS, posS);
		
		
	}

ist das so auch richtig?
 
Ob es richtig ist, kommt darauf an, was du erreichen willst. In der Regel macht es keinen Sinn, ein Objekt als Parameter zu übergeben nur um dies dann in der Methode neu anzulegen.

Du übergibst die Variable land und erzeugst dann ein neues Objekt Hamsterland. Was willst du am Ende mit land machen? Soll dies für die Instanz von Hamster noch erreichbar sein? Dann musst du diese irgendwo speichern.


Kannst Du mal einen Screenshot von deinem UML-Modell zeigen?
 
Nein. So übergibst du der Instance eine Instance von Hamsterland und überschreibst die Variable danach mit einer neuen Instance. Bringt überhaupt nichts. Hau Hamsterland aus den Parametern und definiere in der "new"-Zeile die Variable.


Edit: Ups, zu langsam. ._.'
 

Neue Beiträge

Zurück