Commit 127615b4 by Patryk Czarnik

Klasa Osoba - konstruktory

parent 675d9193
package p10_klasy.v3;
class Konstruktory {
public static void main(String[] args) {
// Gdyby obiekty trzeba było tworzyć w ten sposób, że:
// 1. tworzymy obiekt niezainicjowany
Osoba a = new Osoba();
// 2. uzupełniamy wartości obiektu
a.imie = "Ala";
// istnieje ryzyko użytkownik tej klasy (programista)
// zacznie używać obiektu, zanim ten będzie w pełni gotowy do pracy
a.przedstawSie();
a.nazwisko = "Kowalska";
a.wiek = 30;
a.przedstawSie();
// Właściwym zazwyczaj podejściem jest stworzenie konstruktora, który od razu ustawia wartości pól.
// (Są też inne podejścia do tworzenia obiektów, kiedy konstruktory są prywatne, a upublicznia się:
// - metody statyczne, - oddzielną klasę tworzącą instancje (tzw. factory), - wzorzec builder...
Osoba b = new Osoba("Ola", "Malinowska", 40);
b.przedstawSie();
}
}
package p10_klasy.v3;
class Osoba {
static final int WIEK_PELNOLETNIOSCI = 18;
String imie, nazwisko;
int wiek;
{ // blok inicjalizacyjny - fragment kodu, który wykona się jeszcze przed konstruktorem podczas tworzenia każdego obiektu
System.out.println("Powstaje obiekt Osoba");
}
Osoba() {
}
Osoba(String imie, String nazwisko, int wiek) {
this.imie = imie;
this.nazwisko = nazwisko;
this.wiek = wiek;
}
boolean jestPelnoletnia() {
return wiek >= WIEK_PELNOLETNIOSCI;
}
void przedstawSie() {
System.out.println("Nazywam się " + imie + " " + nazwisko + " i mam " + wiek + " lat.");
}
}
package p10_klasy.v3;
class Przyklad1 {
public static void main(String[] args) {
Osoba a = new Osoba();
System.out.println(a);
System.out.println(a.getClass());
System.out.println("Początkowe wartości pól: " + a.imie + " " + a.nazwisko + " " + a.wiek);
a.imie = "Ala";
a.nazwisko = "Kowalska";
a.wiek = 30;
System.out.println("Nowe wartości pól: " + a.imie + " " + a.nazwisko + " " + a.wiek);
Osoba b = new Osoba();
b.imie = "Ola";
b.nazwisko = "Malinowska";
b.wiek = 40;
System.out.println("b wartości pól: " + b.imie + " " + b.nazwisko + " " + b.wiek);
System.out.println("a wartości pól: " + a.imie + " " + a.nazwisko + " " + a.wiek);
System.out.println();
System.out.println(a.jestPelnoletnia());
a.przedstawSie();
b.przedstawSie();
}
}
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