Commit c85def11 by Patryk Czarnik

konstruktory

parent 512b23f1
......@@ -19,6 +19,22 @@ public class Osoba {
// w pamięci istnieje jeden egzemplarz tej zmiennej
static final int WIEK_PELNOLETNIOSCI = 18;
static int liczbaObiektow = 0;
// konstruktor to taka specjalna metoda, która jest wykonywana
// podczas tworzenia nowego obiektu
Osoba() {
liczbaObiektow++;
}
Osoba(String imie, String nazwisko, int wiek) {
liczbaObiektow++;
this.imie = imie;
this.nazwisko = nazwisko;
this.wiek = wiek;
}
// metoda instancyjna (czyli bez słowa static) będzie uruchamiana na konkretnych obiektach
// i ma dostęp do pól tego obiektu
void przedstawSie() {
......
package p05_klasy_wstep;
public class Program2_Tworzenie {
public static void main(String[] args) {
// Tworząc obiekt "zainicjowany nullami" i dopiero później wpisując wartości pól
Osoba a = new Osoba();
a.imie = "Ala";
// 1) pisemy kod rozwlekle
// 2) narażamy się na ryzyko, że utworzony obiekt będzie "nie w pełni zainicjowany" i niegotowy do pracy
a.przedstawSie();
a.nazwisko = "Kowalska";
a.wiek = 30;
a.przedstawSie();
Osoba b = new Osoba("Ola", "Malinowska", 40);
b.przedstawSie();
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