Hallo alle! Ich habe eine einfache Frage ... WARUM kann ich eine private Variable von der Hauptmethode erreichen? Ich weiß, ich bin in der umschließenden Klasse, aber es ist wichtig. Ich glaubte, dass der Hauptteil NICHT Teil der Klasse ist, die ihn enthält ... Dann würde ich kein privates Mitglied erreichen, aber ich kann ... WARUM? Bitte helfen Sie ... thx
Main ist ein Teil deiner Klasse, du hast es in deiner Klasse deklariert :) Was main nicht ist, ist Teil Ihres Objekts, es wird kein Teil der Objekte sein, die Sie aus der Klasse erstellen, aber es ist immer noch Teil der Klasse. Dies ist für jede statische Funktion korrekt, da main nur eine normale statische Funktion ist, die das Framework nach der Ausführung des Programms suchen soll.
/ Viktor
Klassen können auf die privaten Instanzvariablen von (anderen) Objekten desselben Typs zugreifen.
Folgendes ist auch möglich
%Vor%Sie könnten argumentieren, ob dies wünschenswert ist oder nicht, aber es ist nur eine Lebensregel, dass die JLS dies als legal bezeichnet hat.
Das einzige spezielle Feature der main-Methode ist es, dem Compiler mitzuteilen, wo die Programmausführung beginnen soll. Ansonsten verhält es sich wie jede andere Klassenmethode und hat Zugriff auf private Variablen wie jede andere Klassenmethode.
Weil main statisch ist und Ihre Klasse nicht instanziiert wurde.
Sie haben z. B. kein Ferrari-Objekt, auf das Sie zugreifen können. Sie müssen ein Ferrari-Objekt erstellen und dann auf seine Mitglieder zugreifen. statisches Haupt ist eine spezielle statische Funktion. Sie können es sich als eine Art von getrennt vorstellen, wenn Sie wollen. Also, wenn Sie Ihre Hauptmethode außerhalb von Ferrari verschoben haben, würden Sie erwarten, dass Sie eine Instanz von Ferrari erstellen müssten, um es zu verwenden ... das Gleiche gilt hier.