1. statische Variablen, die in statischer Java verwendet werden
1. Mitglieder in Java, die durch statische Modifizierung modifiziert werden, werden als statische Mitglieder oder Klassenmitglieder bezeichnet. Es gehört zur gesamten Klasse, nicht zu einem Objekt, dh es wird von allen Objekten der Klasse geteilt und existiert in Priorität gegenüber Objekten. Auf statische Mitglieder können direkt unter Verwendung von Klassennamen oder Objektnamen zugegriffen werden. Verwenden Sie statisch, um Variablen, Methoden und Codeblöcke zu ändern.
2. Der öffentliche Modifikator repräsentiert öffentliche und öffentliche, und statische Variablen werden mit statischen Variablen geändert.
3. In einer statischen Methode können statische Mitglieder in derselben Klasse direkt aufgerufen werden, aber nicht statische Mitglieder können nicht direkt aufgerufen werden.
öffentliche Klasse Hellworld {String name = "java"; // nicht statische Variable statische String-String-Hobby = "Programmierung"; // statische Variable public static void print () {System.out.println ("Willkommen:" + name + "!"); // nicht statische Variable System.out.println ("Willkommen:" + Hobby + "!"); // kann direkt statische Variablen aufrufen}}4. Wenn Sie nicht statische Variablen in einer statischen Methode aufrufen möchten, können Sie ein Objekt der Klasse erstellen und dann über das Objekt auf die nicht statischen Variablen zugreifen.
public class helloWorld {String name = "java"; // nicht statische Variable statische String-String-Hobby = "Programm"; // statische Variable // Nichtstatische Variable public static void print () {// Erstellen des Objekts der Klasse Helloworld Hello = new Helloworld (); // Verwenden Sie Objekte, um das nicht statische Variable System.out.println in einer statischen Methode aufzurufen ("Willkommen:"+hello.name+"!"); // In einer statischen Methode können Sie direkt das statische Variable System.out.printn aufrufen ("Willkommen"+Programm+""+Hallo.name); }}5. In gewöhnlichen Mitgliedsmethoden können Sie direkt auf denselben Typ nicht-statischer Variablen und statischen Variablen zugreifen.
öffentliche Klasse Hellworld {String name = "java"; // nicht statische Variable statische String-String-Hobby = "Programmierung"; // statische Variable public void print () {// normales Methode System.out.println ("Willkommen:" + name + "!"); System.out.prinltn ("Willkommen"+Programm+"+Hallo.name);}}6. Nichtstatische Methoden können nicht direkt in statischen Methoden aufgerufen werden. Nicht statische Methoden müssen über Objekte zugegriffen werden.
öffentliche Klasse HellWorld {String name = "java"; // Nicht-statische Variable statische String-String-Hobby = "Programm"; // statische Variable // Nichtstatische Methode public void show () {System.out.println ("Ich bin eine nicht statische Methode und kann nicht direkt von statischer Methode bezeichnet werden."); } // statische Methode public static void show2 () {System.out.println ("Ich bin eine statische Methode und kann direkt nach statischer Methode aufgerufen werden"); } // Nichtstatische Methode wird durch Objekte in statischen Methoden aufgerufen. Sie können direkt die statische Methode public static void print () {// das Objekt der Klasse HelloWorld Hello = new HelloWorld () erstellen; // Berechnen Sie die nicht statische Methode Hello.show () in der statischen Methode; // die statische Methode show2 () berechnen; }}2. In Java verwendete statische Initialisierungsblöcke
1. In der Klassenerklärung können mehrere Initialisierungsblöcke einbezogen werden. Wenn eine Instanz der Klasse erstellt wird, werden diese Codeblöcke wiederum ausgeführt. Wenn Sie statisch den Initialisierungsblock ändern, wird er als statischer Initialisierungsblock bezeichnet.
2. Der Unterschied zwischen Instanzvariablen und Klassenvariablen:
A) Speicherort: Klassenvariablen werden im Methodenbereich gespeichert, während die Klasse geladen ist. Instanzvariablen existieren im Heap -Speicher, wenn das Objekt festgelegt wird.
b) Lebenszyklus: Der Lebenszyklus einer Klassenvariable ist am längsten und verschwindet, wenn die Klasse verschwindet. Der Lebenszyklus einer Instanzvariablen verschwindet, wenn das Objekt verschwindet.
3. Der statische Initialisierungsblock wird nur ausgeführt, wenn die Klasse geladen wird und nur einmal ausgeführt wird. Gleichzeitig kann der statische Initialisierungsblock statische Variablen nur Werte zuweisen und keine gewöhnlichen Elementvariablen initialisieren. Wenn das Programm ausgeführt wird, wird die statische Initialisierung zuerst ausgeführt und hat Vorrang vor der Hauptfunktion, dann wird der Normalinitialisierungsblock ausgeführt und schließlich wird die Konstruktionsmethode ausgeführt.
öffentliche Klasse staticDemo {int num1; // Variable 1 int num2; // Variable 2 static int num3; // statische Variable 3 öffentliche staticDemo () {// Konstruktormethode num1 = 88; System.out.println ("Variable 1 durch Konstruktionsmethode zuweisen"); } {// Initialisierungsblock Num2 = 99; System.out.println ("Variable 2 durch Initialisierungsblock zuweisen"); } static {// statische Initialisierung hier können Sie keine normalen Variablen zuweisen NUM3 = 77; System.out.println ("Wert der statischen Variablen 3 durch statische Initialisierungsblock zuweisen"); } public static void main (String [] args) {staticDemo Hallo = new staticDemo (); // Erstellen Sie das Objekt der Klasse Hello System.out.println ("num1:" + hello.num1); System.out.println ("num2:" + hello.num2); System.out.println ("num3:" + hello.num3); StaticDemo hello1 = new staticdemo (); }} Auslaufergebnisse: