Commit c477a2e3 by Patryk Czarnik

Konstruktory itp

parent 086e1f9b
package p03_inicjalizacja;
public class Klasa extends Nadklasa {
{
// blok inicjalizacyjny
System.out.println("Klasa init 1");
//ERR System.out.println(x);
wypiszPola(); // x = 0, y = 500
}
static {
System.out.println("Klasa static");
}
int x = 100;
final int y = 500;
int z = ustawWartosc(700);
Klasa() {
// od Java 25 mamy prawo wykonywać instrukcje przed jawnym wywołaniem super()
// są liczne ograniczenia - nie wolno odczytywać pól własnych ani z nadklasy, ani odwoływać się do this
System.out.println("halo halo, Java 25");
super();
System.out.println("Klasa()");
x = 200;
}
{
System.out.println("Klasa init 2");
wypiszPola(); // x = 100, y = 500
System.out.println(x);
}
int ustawWartosc(int value) {
System.out.println("wartość zmiennych:");
wypiszPola();
System.out.println("Ustawiam wartość " + value);
return value;
}
void wypiszPola() {
System.out.println("x = " + x + " , y = " + y + " , z = " + z);
}
}
package p03_inicjalizacja;
public class Nadklasa {
{
System.out.println("Nadklasa init");
}
Nadklasa() {
System.out.println("Nadklasa()");
}
static {
System.out.println("Nadklasa static");
}
}
package p03_inicjalizacja;
public class Test1 {
static void main() {
System.out.println("Początek main");
System.out.println("Tworzenie pierwszego obiektu");
Klasa a = new Klasa();
a.wypiszPola();
System.out.println();
System.out.println("Tworzenie drugiego obiektu");
Klasa b = new Klasa();
b.wypiszPola();
// 1 : alokacja pamięci i wpisanie zer
// 2 : wykonanie od góry do dołu bloków inicjalizacyjnych i przypisań
// 3 : wykonanie treści konstruktora
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment