Eigene Klasse definieren

Amina556

Mitglied
Hallo🙂

Ich habe ein Problem, und zwar bin ich im Thema eigene Klassen erstellen, also 2 Programme schreiben und ein Programm ist dann als klasse für mein anderes Programm definiert. Jedoch weiß ich nicht wie ich es machen soll damit mein Editor weiß dass die zusammen gehören… ich kriege es garnicht hin ich benutze notepad++ oder auch Visual Studio Code. Kann mir bitte einer erklären wie ich dabei vorgehen soll dass ein Programm als klasse für mein eigentliches Programm definiert wird? Also ich weiß das die 2 Programme in einem Verzeichnis sein sollen und das sind die auch, ich habe auch versucht mit der Eigenschaft die 2 Programme zu verknüpfen aber mein Editor weiß immer noch nicht dass die zusammen gehören:/
 
Also das ist alles etwas wirr.

a) Dein Editor ist nur ein Editor. Da sind das nur einzelne Dateien mit Text. Da ist uninteressant, ob die zusammen gehören oder nicht.

b) Die Zusammengehörigkeit ist beim Compiler wichtig. Der Compiler übersetzt den Code und dabei müssen alle notwendigen Dateien vorhanden sein. Dabei versucht der Compiler auch, weitere notwendige Dateien zu finden um diese zu übersetzen. Das setzt aber voraus, dass diese alle richtig abgelegt sind. Es gibt eine klare Vorgabe was die packages angeht.

Daher: Zeige doch einfach einmal, was Du genau gemacht hast. Wie sehen Deine beiden Dateien aus? Wo genau sind sie gespeichert? Wie versuchst Du diese zu übersetzen?
 
Also das ist alles etwas wirr.

a) Dein Editor ist nur ein Editor. Da sind das nur einzelne Dateien mit Text. Da ist uninteressant, ob die zusammen gehören oder nicht.

b) Die Zusammengehörigkeit ist beim Compiler wichtig. Der Compiler übersetzt den Code und dabei müssen alle notwendigen Dateien vorhanden sein. Dabei versucht der Compiler auch, weitere notwendige Dateien zu finden um diese zu übersetzen. Das setzt aber voraus, dass diese alle richtig abgelegt sind. Es gibt eine klare Vorgabe was die packages angeht.

Daher: Zeige doch einfach einmal, was Du genau gemacht hast. Wie sehen Deine beiden Dateien aus? Wo genau sind sie gespeichert? Wie versuchst Du diese zu übersetzen?
Also ich habe Bilder gemacht statt den Code einzuführen damit ich genau zeigen kann was ich meine: ich habe 2 Programme geschrieben, mein Programm point2D wollte ich als klasse für mein Point Programm definieren aber wie auf dem Bild der Fehlermeldung zu sehen ist kann mein mein program garnicht ausgeführt werden weil point2D garnicht gefunden werden kann, aber ich frag mich nun wie ich diese 2 Programme zusammen führen kann damit mein Programm point2D weiß das es als klasse definiert werden soll:/
 

Anhänge

  • DBF77E5A-C0D0-4263-99F2-513A3056C39D.jpeg
    DBF77E5A-C0D0-4263-99F2-513A3056C39D.jpeg
    1,2 MB · Aufrufe: 2
  • F8F15AF4-12A2-4370-BF8C-FE3760E71AFC.jpeg
    F8F15AF4-12A2-4370-BF8C-FE3760E71AFC.jpeg
    1,4 MB · Aufrufe: 4
  • C00D15AA-FF4C-471E-9667-AA66B960CE88.jpeg
    C00D15AA-FF4C-471E-9667-AA66B960CE88.jpeg
    1,4 MB · Aufrufe: 6
Wenn ich das Bildschirmfoto vom Editor sehe: Point2D muss in der Datei Point2D.java sein. Die Datei hat aber wohl keine .java Endung. (So würde ich die Tab Beschriftung verstehen. Bei Point.java ist das .java angezeigt, aber der andere Tab hat nur die Beschriftung Point2D)

Edit: Dafür spricht auch das Syntax Highlighting bei Point.java die bei Point2D nicht vorhanden ist. Es ist halt schlicht keine .java Datei daher auch keine Java Syntax, die hervorgehoben wird.
 
Wenn ich das Bildschirmfoto vom Editor sehe: Point2D muss in der Datei Point2D.java sein. Die Datei hat aber wohl keine .java Endung. (So würde ich die Tab Beschriftung verstehen. Bei Point.java ist das .java angezeigt, aber der andere Tab hat nur die Beschriftung Point2D)

Edit: Dafür spricht auch das Syntax Highlighting bei Point.java die bei Point2D nicht vorhanden ist. Es ist halt schlicht keine .java Datei daher auch keine Java Syntax, die hervorgehoben wird.
Danke schön das habe ich voll übersehen, jedoch habe ich noch eine Frage mit welchem Befehl im Terminal kann ich nun gucken ob Point2D als Klasse in Point definiert wurde ?
 
Danke schön das habe ich voll übersehen, jedoch habe ich noch eine Frage mit welchem Befehl im Terminal kann ich nun gucken ob Point2D als Klasse in Point definiert wurde ?
Das macht so keinen Sinn. Point2D ist ja nicht in der Klasse Point definiert worden.

Die Klasse Point nutzt die Klasse Point2D aber die Klasse Point2D ist außerhalb und unabhängig von der Klasse Point.

Du kannst im Dateisystem schauen, wo welche Datei liegt (und ob sie richtig benannt wurde). Und ansonsten sagt Dir der Compiler, ob alles in Ordnung ist, sprich: javac mit entsprechenden Parametern aufrufen.

Das alles nimmt Dir ansonsten eine Entwicklungsumgebung ab:
  • diese verwaltet die Dateien und zeigt sie entsprechend an (also in etwa, was Du auch im Dateisystem selbst schauen könntest z.B. im Windows Explorer)
  • Diese analysiert den Code direkt und zeigt Dir an, ob Fehler vorhanden sind (Das, was bei dir sonst erst mit dem javac Aufruf kommen würde)

Darüber hinaus unterstützt dich die Entwicklungsumgebung mit einigen Dingen mehr, wie Syntax Highlighting, hilfreichen Anzeigen beim Code tippen u.s.w.)
 
Das macht so keinen Sinn. Point2D ist ja nicht in der Klasse Point definiert worden.

Die Klasse Point nutzt die Klasse Point2D aber die Klasse Point2D ist außerhalb und unabhängig von der Klasse Point.

Du kannst im Dateisystem schauen, wo welche Datei liegt (und ob sie richtig benannt wurde). Und ansonsten sagt Dir der Compiler, ob alles in Ordnung ist, sprich: javac mit entsprechenden Parametern aufrufen.

Das alles nimmt Dir ansonsten eine Entwicklungsumgebung ab:
  • diese verwaltet die Dateien und zeigt sie entsprechend an (also in etwa, was Du auch im Dateisystem selbst schauen könntest z.B. im Windows Explorer)
  • Diese analysiert den Code direkt und zeigt Dir an, ob Fehler vorhanden sind (Das, was bei dir sonst erst mit dem javac Aufruf kommen würde)

Darüber hinaus unterstützt dich die Entwicklungsumgebung mit einigen Dingen mehr, wie Syntax Highlighting, hilfreichen Anzeigen beim Code tippen u.s.w.
 

Zurück
Oben