[Java Silver] Informationen zur Initialisierung

Instanzinitialisierung

-Initialisieren mit ** Konstruktor **

** * * Konstante (final) ** kann auch ** mit dem Konstruktor initialisiert werden ** In der Klasse definierte nicht initialisierte Konstanten können im Konstruktor initialisiert werden

Beispiel)

public class Main{
   public static void main(String[] args){
       Sample a = new Sample(5);
       System.out.println(a.num);   //Wird als 5 angezeigt

   }
}

class Sample{
     final int num;  //Das konstante Feld wird zu diesem Zeitpunkt nicht initialisiert
     Sample(int num){  //int num ist eine lokale Variable mit demselben Namen wie die Instanzvariable
         this.num = num;  //Konstanten im Konstruktor initialisieren
     }
}

Initialisieren Sie die allgemeine Verarbeitung des Konstruktors

Beispiel)

public class Main{
   public static void main(String[] args){
       Sample a = new Sample(5);    //"Instanzinitialisierer ausführen"
       System.out.println(a.num);   //5
       
       Sample b = new Sample();    //"Instanzinitialisierer ausführen"
       System.out.println(b.num);  //10

   }
}

class Sample{
     final int num;  //Das konstante Feld wird zu diesem Zeitpunkt nicht initialisiert
     {
        System.out.println("Führen Sie den Instanzinitialisierer aus"); 
     }
     Sample(){
         this.num = 10;
     }
     Sample(int num){  
         this.num = num;  //Konstanten im Konstruktor initialisieren
     }
}

Statisches Feld initialisieren

Statische Felder können verwendet werden, ohne eine Instanz zu erstellen. Daher kann ** nicht mit dem Konstruktor ** initialisiert werden

→ Es ist erforderlich, mit einem statischen Initialisierer (Initialisierer) zu initialisieren.

Beispiel)

public class Main{
   public static void main(String[] args){       
       System.out.println(Sample.num);  //100 und Ausgabe
   }
}

class Sample{
     static final int num;  //Statische Konstanten wurden zu diesem Zeitpunkt noch nicht initialisiert
     static {
        num = 100;  //Initialisierung statischer Konstanten
     }     
}

Die Reihenfolge, in der die Initialisierer arbeiten

** Initializer-> Instance Initializer-> Konstruktor **

Beispiel)

public class Main{
   public static void main(String[] args){
       User a = new User();   //Ausgabe "Ausführung des Initialisierers, Ausführung des Instanzinitialisierers, Ausführung des Konstruktors"
  }

}

class User{
  private static int count;
  static{
      User.count = 0;  //Initialisieren Sie statische Variablen
    System.out.println("Führen Sie den Initialisierer aus");
  }
 
  {
     System.out.println("Führen Sie den Instanzinitialisierer aus");
  }

  User(){
     System.out.println("Konstruktor ausführen");
  }
}

Recommended Posts

[Java Silver] Informationen zur Initialisierung
Informationen zur Vererbung (Java Silver)
[Java Silver] Über gleich Methode
[Java] Informationen zu Java 12-Funktionen
Java Silver Memo
[Java] Über Arrays
Etwas über Java
Wo ist mit Java?
Informationen zu Java-Funktionen
Über Java-Threads
[Java] -Schnittstelle
Über die Java-Klasse
Informationen zu Java-Arrays
Über Java-Vererbung
Über Schnittstelle, Java-Schnittstelle
Studieren Sie Java Silver 1
Über Java Var
Über Java Literal
Informationen zu Java-Befehlen
[Java-Anfänger] Informationen zur Initialisierung eines mehrdimensionalen Arrays
Informationen zur Java-Protokollausgabe
Informationen zur Java-Funktionsschnittstelle
Java SE8 Silver bestanden
Über die Klassenteilung (Java)
Java Bronze Silber bestanden
Über [Java] [StreamAPI] allMatch ()
Java Silver Study Day 1
Java Silver Passing Erfahrung
Fassen Sie die Java-Vererbung zusammen (Java Silver 8)
Informationen zur Bindung von Java-Methoden
[Java] Über anonyme Klassen
Informationen zu Aufteilungsmethoden (Java)
[Java] Java SE 8 Silver Note
Informationen zur Java-Array-Liste
Über Java-Polymorphismus super ()
Informationen zur Java String-Klasse
Informationen zu Java-Zugriffsmodifikatoren
Über Java-Lambda-Ausdrücke
Informationen zu Java-Einstiegspunkten
Java 10 Docker-Unterstützung
Persönliche Zusammenfassung über Java
Ein Memorandum der Java8 Silver-Prüfung
Über die abstrakte Klasse von Java
[Java Silver] (Ausnahmebehandlung) Informationen zu den Anweisungen try-catch-finally und try-with-resource
Hinweise zu Java GC
Was ich über Java 8 recherchiert habe
Über Java-Instanzen
Was ich über Java 6 recherchiert habe
[Erfahrung] Java SE 8 Silver bestanden
[Gradle] Informationen zu Java-Plug-In-Aufgaben
JAVA Silver Qualifikationsprüfungsprotokoll
Informationen zu Java-Variablendeklarationsanweisungen
Was ich über Java 9 recherchiert habe
Java Silver Lernmethode Memo
[Java] Informationen zur Behandlung von Try-Catch-Ausnahmen
Informationen zu Java Class Loader-Typen
Java Silver Prüfungsvorbereitungsnotiz
[Java] Über String und StringBuilder