Commit 426ff999 by Patryk Czarnik

bloki inicjalizacyjne

parent c85def11
...@@ -19,22 +19,33 @@ public class Osoba { ...@@ -19,22 +19,33 @@ public class Osoba {
// w pamięci istnieje jeden egzemplarz tej zmiennej // w pamięci istnieje jeden egzemplarz tej zmiennej
static final int WIEK_PELNOLETNIOSCI = 18; static final int WIEK_PELNOLETNIOSCI = 18;
static int liczbaObiektow = 0; private static int liczbaObiektow = 0;
// konstruktor to taka specjalna metoda, która jest wykonywana // konstruktor to taka specjalna metoda, która jest wykonywana
// podczas tworzenia nowego obiektu // podczas tworzenia nowego obiektu
Osoba() { Osoba() {
liczbaObiektow++;
} }
Osoba(String imie, String nazwisko, int wiek) { Osoba(String imie, String nazwisko, int wiek) {
liczbaObiektow++;
this.imie = imie; this.imie = imie;
this.nazwisko = nazwisko; this.nazwisko = nazwisko;
this.wiek = wiek; this.wiek = wiek;
} }
// blok inicjalizacyjny to fragment kodu wykonywany podczas
// tworzenia każdego obiektu jeszcze przed konstruktorem
{
System.out.println("init Osoba");
liczbaObiektow++;
}
// statyczny blok inicjalizacyjny jest wykonywany raz dla danej klasy
// gdy ta klasa jest ładowana do JVM
static {
System.out.println("static Osoba");
}
// metoda instancyjna (czyli bez słowa static) będzie uruchamiana na konkretnych obiektach // metoda instancyjna (czyli bez słowa static) będzie uruchamiana na konkretnych obiektach
// i ma dostęp do pól tego obiektu // i ma dostęp do pól tego obiektu
void przedstawSie() { void przedstawSie() {
...@@ -53,4 +64,8 @@ public class Osoba { ...@@ -53,4 +64,8 @@ public class Osoba {
return wiek >= WIEK_PELNOLETNIOSCI; return wiek >= WIEK_PELNOLETNIOSCI;
} }
static int liczbaObiektow() {
return liczbaObiektow;
}
} }
...@@ -3,6 +3,8 @@ package p05_klasy_wstep; ...@@ -3,6 +3,8 @@ package p05_klasy_wstep;
public class Program2_Tworzenie { public class Program2_Tworzenie {
public static void main(String[] args) { public static void main(String[] args) {
System.out.println("Początek programu");
System.out.println("Osoba pełnoletnia ma " + Osoba.WIEK_PELNOLETNIOSCI + " lat.");
// Tworząc obiekt "zainicjowany nullami" i dopiero później wpisując wartości pól // Tworząc obiekt "zainicjowany nullami" i dopiero później wpisując wartości pól
Osoba a = new Osoba(); Osoba a = new Osoba();
a.imie = "Ala"; a.imie = "Ala";
...@@ -17,6 +19,6 @@ public class Program2_Tworzenie { ...@@ -17,6 +19,6 @@ public class Program2_Tworzenie {
Osoba b = new Osoba("Ola", "Malinowska", 40); Osoba b = new Osoba("Ola", "Malinowska", 40);
b.przedstawSie(); b.przedstawSie();
System.out.println("Liczba obiektów: " + Osoba.liczbaObiektow); System.out.println("Liczba obiektów: " + Osoba.liczbaObiektow());
} }
} }
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