OOP Methoden auslagern

Errschaffer

Mitglied
Hi,

gibt es bei Java eine Möglichkeit Methoden einer Klasse auszulagern? Ich kenne das von C++ her da findet eben der eigentliche Funktionsinhalt außerhalb der Klassendefinition seinen platz. Bei Java hab ich sowas noch nicht gefunden auch nicht über Google.

Freue mich auf Antworten 🙂
 
Ich kenne das von C++ her da findet eben der eigentliche Funktionsinhalt außerhalb der Klassendefinition seinen platz.
Falls du Header Dateien und CPP Dateien meinst: Genau das wollte man aus gutem Gründen in Java vermeiden 🙂

Stattdessen gibt es in Java Interfaces als Sprachmittel, damit kann man eine Schnittstelle festlegen, Klassen können diese Interfaces implementieren.
 
Wozu sollte man das auch tun wollen? Wenn es darum geht, eine allgemeine Schnittstelle zu definieren, dann kann man Interfaces nutzen - der Effekt ist ja mehr oder weniger der gleiche.
 
Wozu sollte man das auch tun wollen? Wenn es darum geht, eine allgemeine Schnittstelle zu definieren, dann kann man Interfaces nutzen - der Effekt ist ja mehr oder weniger der gleiche.

Weil es total unübersichtlich ist wenn in einer Klasse sagen wir mal 10 Funktionen sind. Das würde dann so aussehen als zu den Zeiten wo ich gerade mit C++ angefangen habe und noch alles in die main.cpp geschrieben habe. Schrecklich.

Werde mir das mal mit den Interfaces anschauen. Danke 🙂
 
Du kannst Klassen aber nicht ewig unterteilen. Wenn man z.B einen Baum hat kann man diesen zwar noch in verschiedene Baumarten unterteilen. Trotzdem bleiben die Basismethoden in der Basisklasse gleich (Wachsen,Wasser aufnehmen,Sauerstoff produzieren u.s.w).
 
Ich denke es ist zum Großen teil auch Gewohnheitssache. Ich kam auch von C/C++ nach Java und fand es zuerst unübersichtlicht, dass in einer .java-Datei ALLES steht und vermisste die Trennung von Deklaration (Header) und Implementierung (Source).
Aber mittlerweile finde ich es andersrum umständlicher, vor allem wenn man etwas ändern muss ist die Aufteilung in verschiedene Dateien doch unfreundlich; vor allem wenn Header- und Source-Datei weit auseinander liegen. In manchen Projekten liegen die Header ja sogar noch in ganz anderen Verzeichnissen.

Aber ich würde generell davon abraten, Java-Interface wie Headerdateien zu verwenden, nur um eine Ähnlichkeit zu C/C++ herzustellen. Für jede Klasse nun ein
Code:
interface MeineKlasse
und eine
Code:
class MeineKlasseImpl
anzulegen halte ich für schlecht.
Was man im Umkehrschluss aber nicht verstehen darf als "bloß keine Interfaces benutzen" 🙂
Halt da, wo es sinnvoll ist.
 
Hallo an alle! Seit Kurzem experimentiere ich mit Java. Jetzt versuche ich ein class in einem separaten Datei abzulegen und darauf von anderem Datei zugreifen. Allerdings klappt es irgendwie nicht. Ich wollte z.B. In einem Class-Datei von 0 bis 5 zählen und in anderem ausgeben. Kann mich vielleicht einer auf den richtigen Weg bringen?! Ich bedanke mich im Voraus.
[JAVA=42]class Klasse
{ public static void rechnen() {
int i = 0;

do{
i++;
return (i ); // oder System.out.println(i);
}

while (i<=5);
}
[/code]

[JAVA=42]class Modul
{
public static void main ( String[] args ){
System.out.println (Klasse.rechnen() );

}
}
[/code]
 

Zurück
Oben