Thomas Darimont
Erfahrenes Mitglied
Hallo,
verdeutlichen kann man sich das wie folgt:
Ausgabe:
Die Instanzvariablen einer Instanz werden erst (automatisch) initialisiert, nachdem der Konstruktor der Basisklasse aufgerufen worden ist. Ebenso werden auch Instanz Initialisierer Blocks nach dem Aufruf des Basisklassen Konstruktors ausgeführt, in der Reihenfolge in der Sie im Code auftauchen. Anschließend wird der eigentliche Konstruktor ausgeführt.
Ausgabe:
Weitere Beispiele zur Initialisierung:
http://www.tutorials.de/forum/1040519-post3.html
Gruß Tom
verdeutlichen kann man sich das wie folgt:
Java:
/**
*
*/
package de.tutorials;
/**
* @author Thomas.Darimont
*
*/
public class InitializationExample {
/**
* @param args
*/
public static void main(String[] args) {
new B();
}
static class A{
A(){
System.out.println("Constructor A");
intialize();
}
void intialize(){
System.out.println("Initialize A");
}
}
static class B extends A{
String value =init("yyy");
B(){
System.out.println("Constructor B");
System.out.println(value);
}
void intialize(){
super.intialize();
value = init("xxx");
}
}
static String init(String string){
System.out.println("Init: " + string);
return string;
}
}
Ausgabe:
Code:
Constructor A
Initialize A
Init: xxx
Init: yyy
Constructor B
yyy
Die Instanzvariablen einer Instanz werden erst (automatisch) initialisiert, nachdem der Konstruktor der Basisklasse aufgerufen worden ist. Ebenso werden auch Instanz Initialisierer Blocks nach dem Aufruf des Basisklassen Konstruktors ausgeführt, in der Reihenfolge in der Sie im Code auftauchen. Anschließend wird der eigentliche Konstruktor ausgeführt.
Java:
/**
*
*/
package de.tutorials;
/**
* @author Thomas.Darimont
*
*/
public class InitializationExample {
/**
* @param args
*/
public static void main(String[] args) {
new B();
}
static class A{
A(){
System.out.println("Constructor A");
intialize();
}
void intialize(){
System.out.println("Initialize A");
}
}
static class B extends A{
{
System.out.println("Instance Initializer B 0");
}
B(){
System.out.println("Constructor B");
System.out.println(value);
}
String value =init("yyy");
{
System.out.println("Instance Initializer B 1");
}
void intialize(){
super.intialize();
value = init("xxx");
}
}
static String init(String string){
System.out.println("Init: " + string);
return string;
}
}
Ausgabe:
Code:
Constructor A
Initialize A
Init: xxx
Instance Initializer B 0
Init: yyy
Instance Initializer B 1
Constructor B
yyy
Weitere Beispiele zur Initialisierung:
http://www.tutorials.de/forum/1040519-post3.html
Gruß Tom