Erste Schritte Als Rückgabewert Klasse

Dasha

Mitglied
Hi,

Ich habe folgenden Quelltext:

Java:
public class Punkt
{
//
public int x = 0;
public int y = 0;

public Punkt(int x, int y)
{
this.x = x;
thix.y = y;
}

public int getX()
{
return x;
}

public int getY()
{
return y;
}

public Punkt verschieben(int dx, int dy)
{
//bewegt den Punkt um dx und dy
x = x + dx;
y = y + dy;

//und gibt den Punkt zurück
return ????
}

Also der Rückgabewert ist "Punkt", also die Klasse.
Die drei Methodenkörper waren schon vorgegeben. Ich weiß leider nicht was da genau zurückgegeben werden soll.

Andere Klassen einer Vererbungshierarchie greifen auf diese Klasse zu, die Klasse "Punkt" ist nicht in der Hierarchie eingebunden sondern steht nur am Rand.
 
Möchtest Du dort einen neuen Punkt erzeugen oder einfach nur den aktuellen Punkt verschieben. Bei letzterem muss die Methode überhaupt nichts zurückgeben, weil Du den Punkt ja schon vorher in der Hand haben musst, um die Methode "verschieben" aufrufen zu können.
 
Kommt drauf an. Willst du den aktuellen Punkt verschieben und diesen dan zurück geben: return this;
Willst du dass beim verschieben eine neuer Punkt entsteht? return new Punkt(x + dx, y + dy);
 
Entweder
Java:

Java:
public void verschieben(int dx, int dy) {
//bewegt den Punkt um dx und dy
x = x + dx;
y = y + dy;
}

oder

Java:
public Punkt verschieben(int dx, int dy) {
//bewegt den Punkt um dx und dy
int _x = x + dx;
int _y = y + dy;
 
//und gibt den Punkt zurück
return new Punkt(_x, _y);
}

Methode 1 verschiebt das aktuelle Punkt Objekt um die übergebenen Werte.
Methode 2 erzeugt dir ein neues Punkt Objekt und lässt das aktuelle Punkt Objekt unverändert.
 
Ok, gut Danke 🙂

An den new hat es gehangen.
Ich hab bis jetzt noch nie eine Instanz einer Klasse mit "new" erstellt bzw. wusste noch nicht mal das es geht.

mfg
 

Zurück
Oben