Wo sollte man in Java die Methode schreiben in der Klasse oder im Objekt also?

3 Antworten

In Java sollten Methoden in der Klasse definiert werden.

Eine Methode definiert das Verhalten einer Klasse und wird von Objekten dieser Klasse aufgerufen. Wenn eine Methode in einer Klasse definiert wird, steht sie allen Instanzen dieser Klasse zur Verfügung. Das bedeutet, dass jedes Objekt, das von dieser Klasse instanziiert wird, auf diese Methode zugreifen kann, ohne dass die Methode für jedes einzelne Objekt erneut definiert werden muss.

Wenn du jedoch spezifisches Verhalten für jedes Objekt haben möchtest, kannst du die Methode als Instanzmethode definieren. In diesem Fall wird die Methode Teil des Objekts und kann auf die spezifischen Eigenschaften dieses Objekts zugreifen.


Kulena 
Fragesteller
 16.05.2024, 13:58

Absoluter Wahnsinn! Ja weil ich hab viele Youtuber gesehen die ihre Methoden in der Klasse definiert haben aber auch welche die im Objekt die Methode definiert haben. Danke dir!

0
Kulena 
Fragesteller
 16.05.2024, 16:41
@JayRaa

Könntest du bitte ein simples bsp. geben? z.B bezogen auf ein Auto.

0

Direkt schreiben/definieren kannst du Methoden immer nur innerhalb einer Klasse oder einem Interface. Objekte sind die Instanzen von Klassen, die sich später auf bestimmte Methoden beziehen können, die in der Klasse (oder einer Basisklasse) definiert wurden.

Beispiel:

class Car {
  public void drive() {
    System.out.println("Wrumm wrumm");
  }
}

// main:
Car herbie = new Car();
herbie.drive();

Hier wird eine Klasse Car angelegt, in der eine Methode drive definiert wird. Später kann ein Objekt dieser Klasse kreiert werden. Dieses Objekt hat Zugriff auf die Methode drive.

Weiterführend wird bei Methoden, die du in einer Klasse definierst, grundsätzlich zwischen objektgebundenen (Instanz-) und klassengebundenen (statischen) Methoden unterschieden. Letztere werden mit dem static-Modifier gekennzeichnet.

Beispiel:

class Car {
  public static int compareCars(Car car1, Car car2) {
    // ...
  }
}

// main:
Car herbie = new Car();
Car docHudson = new Car();
Car.compareCars(herbie, docHudson);

Der wesentliche Unterschied bei statischen Methoden liegt darin, dass sie über die Klasse aufgerufen werden. Das heißt, du brauchst kein Objekt für einen Aufruf und innerhalb ihres Körpers gibt es keine this-Referenz (d.h. es besteht kein Zugriff auf objektgebundene Elemente), so wie in objektgebundenen Methoden.

Welche Methodenart je Fall passend ist, kann logisch erfragt werden. Verhaltensweisen/Aktionen, die ein Objekt ausmachen, sollten bspw. objektgebunden definiert sein.


Kulena 
Fragesteller
 16.05.2024, 19:30

Kannst du mir static bitte erklären?

0

Methodendefinition im Objekt? Nope.

Du meinst wahrscheinlich Methodenaufrufe als Parameter.