-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
}
}
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
}
}
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
}
}
** 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