Der folgende Editor bringt Ihnen einen Artikel, der die statischen und dynamischen Probleme von Java ausführlich bespricht. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor, um einen Blick darauf zu werfen
Es kann kein statischer Verweis auf das nicht-statische Feld erstellt werden
Statische Methoden können nicht auf nicht-statische Mitgliedsvariablen und -methoden verweisen
class A { private int a = 1; public sttaic void main(String[] args){ System.out.println(a); } }
Da die Instanzvariable der Status des spezifischen Objekts sein sollte, sollten Sie zuerst A a = new A(); und dann System.out.println(a, a);
Oder ändern Sie die Variable in statisch
Keine umschließende Instanz vom Typ EventApp4 ist zugänglich. Die Zuordnung muss mit einer umschließenden Instanz vom Typ EventApp4 (z. B. x.new) qualifiziert werden A(), wobei x eine Instanz von EventApp4 ist.
Grund: Die innere Klasse ist nicht statisch qualifiziert, daher ist sie dynamisch, und das ist mir neu innere Klasse in der Hauptfunktion. Warum verursacht dies Probleme? Da statische Methoden und Variablen beim Laden der Klasse bereits in den Speicher eingegeben wurden, nicht statische Methoden und Variablen jedoch erst nach der Instanziierung in den Speicher gelangen können, ist new in der statischen Methode keine statische innere Klasse verursacht einen Fehler, da die innere Klasse noch nicht existiert. Im Gegenteil, in der neuen statischen Methode tritt in der dynamischen Methode kein Fehler auf. Aus dem gleichen Grund existiert die statische Methode bereits vor der nichtstatischen Methode.
Bei der Analyse des Java-Speichermechanismus gilt zunächst: Wenn Sie ein neues Objekt erstellen, öffnen Sie nicht zunächst Speicherplatz für das Objekt im Heap, sondern fügen der Klasse zunächst die statische Methode hinzu (mit static (Änderung der statischen Funktion) Der Code wird an einen Ort geladen, der als Methodenbereich bezeichnet wird, und dann wird das Objekt im Heap-Speicher erstellt. Daher wird die statische Methode geladen, während die Klasse geladen wird. Wenn Sie ein Objekt neu erstellen, ist das Objekt im Speicher vorhanden. Das Schlüsselwort this bezieht sich im Allgemeinen auf das Objekt. Wenn jedoch kein neues Objekt vorhanden ist, können Sie die statische Methode der Klasse auch über den Klassennamen aufrufen.
Bei Problemen gelten die folgenden Prinzipien
1. Verwenden Sie hauptsächlich statische Methoden, statische Variablen und statische Klassen ist, Variablen, Methoden sind auf statisch beschränkt
2 In main, instanziieren Sie diese Klasse oder andere Klassen (die zu verwendende Klasse)
3. Fügen Sie die Anweisungen in main in den Konstruktor ein. Instanziieren Sie diese Klasse in main, da die Referenz dieser Klasse im Konstruktor this
verwendet werden kannDas obige ist der detaillierte Inhalt vonStatische und dynamische Java-Problemlösung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!