Guten Morgen,
ich habe vor Kurzem damit begonnen, mir Java mithilfe von YT-Tutorials und Beiträgen auf Webseiten und in Foren beizubringen. Um ganz präzise zu sein: Es geht um Java in Verbindung mit (UHD-)Blu-rays (Xlets). Am besten lerne ich solche Dinge anhand von bereits vorhandenem Code. Daher habe ich den Java-Code einer Blu-ray in IntelliJ IDEA (Community Edition 2024.1) geladen. (Eines meiner Authoring-Programme bringt zudem Eclipse mit. Aber IntelliJ gefällt mir derzeit besser.) Ich erarbeite mir dann Schritt für Schritt die Funktionen des Codes. Das geht kreuz und quer. Denn sobald der Java-Code durch das Authoring-Programm läuft, werden alle Bezeichner entfernt und durch Buchstaben ersetzt. (Das geht sogar so weit, dass „do“ Verwendung findet, weil einfach von a bis z durchbenannt und dann mit aa, ab, ac etc. weitergemacht wird. Bei IntelliJ führt „do“ natürlich zu Irritationen. Warum auch immer es funktioniert, dass so eine Disc dennoch abgespielt wird.) Daher ist der Code ein einziges Rätsel. Erst recht für mich als Anfänger.
Durchschaue ich eine Sache, vergebe ich meine eigenen Bezeichnungen. Nur gut, dass IntelliJ die Zusammenhänge besser erkennt als ich. Denn sonst würde es wohl Ewigkeiten dauern. Wobei sich auch IntelliJ gelegentlich irrt, da manche Buchstabenkombinationen häufiger vorkommen, aber zu unterschiedlichen Funktionen gehören. Da muss man dann aufpassen.
Nun zu meiner Frage: Bei Xlets sind ja einige Dinge anders. Der Startpunkt ist ein bestimmter Code innerhalb einer Klasse. (Es gibt keine klassische Main-Methode.) Diese Klasse wird dann im Authoring-Programm hinterlegt, damit die Disc später weiß, wo sie starten soll. Dieser Code liegt meist in einem Package. (Ist jedenfalls bei meinem Authoring-Programm der Fall.) Dadurch, dass der Code in einem Package liegt, ist er von den restlichen Klassen außerhalb des Packages „isoliert“. Wenn ich das richtig verstanden habe, ist das auch richtig so.
Mein Problem ist nun, dass bei der Umbenennung von z. B. Klassen IntelliJ die Bezeichner in Packages ignoriert. Dasselbe gilt, wenn ich mich durch den Code klicke, um zu verstehen, wohin eine z. B. Methode oder Variable führt. Und natürlich frage ich mich, wie das bei der Ausführung des Codes funktioniert: Wie gelingt der Sprung aus dem Package zu einer anderen Klasse? (Im vorliegenden Code liegt die Start-Klasse in ihrem eigenen Package. Alle anderen Klassen liegen außerhalb oder in anderen Packages.)
Übrigens: Eine Blu-ray oder UHD-Blu-ray, welche auf Java basiert, nennt sich „BD-J“. In Abgrenzung zu einer HDMV-Blu-ray. HDMV ist der „klassische“ Code, welcher extra für Blu-rays entwickelt wurde. HDMV habe ich mir vor Jahren ebenfalls selbst beigebracht. Dabei handelt es sich allerdings um eine sehr rudimentäre Sprache. Also kein Vergleich mit Java. 🤣
Ich bedanke mich schon jetzt für Eure Antworten und Eure Geduld.
Lukas
ich habe vor Kurzem damit begonnen, mir Java mithilfe von YT-Tutorials und Beiträgen auf Webseiten und in Foren beizubringen. Um ganz präzise zu sein: Es geht um Java in Verbindung mit (UHD-)Blu-rays (Xlets). Am besten lerne ich solche Dinge anhand von bereits vorhandenem Code. Daher habe ich den Java-Code einer Blu-ray in IntelliJ IDEA (Community Edition 2024.1) geladen. (Eines meiner Authoring-Programme bringt zudem Eclipse mit. Aber IntelliJ gefällt mir derzeit besser.) Ich erarbeite mir dann Schritt für Schritt die Funktionen des Codes. Das geht kreuz und quer. Denn sobald der Java-Code durch das Authoring-Programm läuft, werden alle Bezeichner entfernt und durch Buchstaben ersetzt. (Das geht sogar so weit, dass „do“ Verwendung findet, weil einfach von a bis z durchbenannt und dann mit aa, ab, ac etc. weitergemacht wird. Bei IntelliJ führt „do“ natürlich zu Irritationen. Warum auch immer es funktioniert, dass so eine Disc dennoch abgespielt wird.) Daher ist der Code ein einziges Rätsel. Erst recht für mich als Anfänger.
Durchschaue ich eine Sache, vergebe ich meine eigenen Bezeichnungen. Nur gut, dass IntelliJ die Zusammenhänge besser erkennt als ich. Denn sonst würde es wohl Ewigkeiten dauern. Wobei sich auch IntelliJ gelegentlich irrt, da manche Buchstabenkombinationen häufiger vorkommen, aber zu unterschiedlichen Funktionen gehören. Da muss man dann aufpassen.
Nun zu meiner Frage: Bei Xlets sind ja einige Dinge anders. Der Startpunkt ist ein bestimmter Code innerhalb einer Klasse. (Es gibt keine klassische Main-Methode.) Diese Klasse wird dann im Authoring-Programm hinterlegt, damit die Disc später weiß, wo sie starten soll. Dieser Code liegt meist in einem Package. (Ist jedenfalls bei meinem Authoring-Programm der Fall.) Dadurch, dass der Code in einem Package liegt, ist er von den restlichen Klassen außerhalb des Packages „isoliert“. Wenn ich das richtig verstanden habe, ist das auch richtig so.
Mein Problem ist nun, dass bei der Umbenennung von z. B. Klassen IntelliJ die Bezeichner in Packages ignoriert. Dasselbe gilt, wenn ich mich durch den Code klicke, um zu verstehen, wohin eine z. B. Methode oder Variable führt. Und natürlich frage ich mich, wie das bei der Ausführung des Codes funktioniert: Wie gelingt der Sprung aus dem Package zu einer anderen Klasse? (Im vorliegenden Code liegt die Start-Klasse in ihrem eigenen Package. Alle anderen Klassen liegen außerhalb oder in anderen Packages.)
Übrigens: Eine Blu-ray oder UHD-Blu-ray, welche auf Java basiert, nennt sich „BD-J“. In Abgrenzung zu einer HDMV-Blu-ray. HDMV ist der „klassische“ Code, welcher extra für Blu-rays entwickelt wurde. HDMV habe ich mir vor Jahren ebenfalls selbst beigebracht. Dabei handelt es sich allerdings um eine sehr rudimentäre Sprache. Also kein Vergleich mit Java. 🤣
Ich bedanke mich schon jetzt für Eure Antworten und Eure Geduld.
Lukas