Methode außerhalb der Klasse definieren

Suppe

Mitglied
Als ich damals C++ programmiert habe konnte ich eine Methode zu einer Klasse außerhalb dieser Klasse definieren indem ich die Methode der Klasse mit einem Codewort zugewiesen habe und die Headline der Methode in die Klasse kopiert habe. Geht das in Java auch? wenn ja, wie?

Leider konnte ich dazu nichts finden. Und mein Versuch es einfach so ähnlich zu machen wie ich glaube es damals in C++ gemacht zu haben hatte leider auch keinen Erfolg. Es würde mir helfen meine Code eine ganze Ecke ordentlicher zu gestallten.
Danke
 
Meines Wissens nach nicht. Methoden müssen innerhalb der Klasse definiert werden. Aber wenn ich fragen darf, wieso willst du die Methoden überhaupt auslagern?
 
Es ist nicht, so dass es notwendig wäre damit mein Code funktioniert. Ich bin es nur von damals in C++ gewöhnt und empfinde es demnach als übersichtlicher. Wie es aussieht werde ich mich wohl umgewöhnen müssen.

Auf jeden Fall danke für die schnelle Antwort
 
Klasse ^= Bauplan bsp Hund enthält Methoden
Methode ^= Funktionalität bsp bellen, laufen, ...

Objekt ^= nach Bauplan erstellter Gegenstand

Alles was der Bauplan nicht weiß kann das Objekt später nicht machen
 
Zuletzt bearbeitet:
Es gibt noch weitere Möglichkeiten. Du kannst eine Art Utility Klasse schreiben, die deine Methoden enthält. Diese müssen als static deklariert sein. Die kannst du dann überall in deinem Code nutzen. Du musst natürlich erst die Klasse importieren. Etwa so:
Java:
import de.projekt.MeineUtilities;

public class Arbeiter
{
  public void machWas()
  {
    MeineUtilities.eineMethode();
  }
}

Wenn einem das "MeineUtilities" vor dem Methodenaufruf noch zu viel ist, kann man auch static imports verwenden:
Java:
import static de.projekt.MeineUtilities.eineMethode;

public class Arbeiter
{
  public void machWas()
  {
    eineMethode();
  }
}

Letztere Variante ist mit etwas Vorsicht zu genießen. Wenn es z.B. in der Arbeiter Klasse bereits eineMethode() gibt, wird diese aufgerufen. Eclipse gibt auch eine entsprechende Warnung aus, dass der static import von eineMethode() aus der MeineUtilities Klasse nie benutzt wird. Wenn man sauber programmiert sollte es gar nicht zu solchen Problemen kommen. Aber (Flüchtigkeits)Fehler schleichen sich halt ein. Ich persönlich bevorzuge darum den gewöhnlichen import einer Klasse, um dann deren statische Methoden klassisch per: KlassenName.methode() aufzurufen.
 
@Suppe:
Meinst du etwa das C++ Schlüsselwort "friend" ?
Das wurde in Java ganz bewußt nicht übernommen. Man kann aber - mit einigem Aufwand - ein ähnliches Verhalten simulieren.
Allerdings würde ich dir davon abraten.
 

Zurück
Oben