Commit 15ea267a by Patryk Czarnik

konstruktory

parent 5ace2f62
...@@ -7,6 +7,17 @@ public class Osoba { ...@@ -7,6 +7,17 @@ public class Osoba {
String imie, nazwisko; String imie, nazwisko;
int wiek; int wiek;
// Klasa może posiadać wiele konstruktorów, które różnią się liczbą lub typem parametrów
Osoba() {
}
Osoba(String imie, String nazwisko, int wiek) {
this.imie = imie;
this.nazwisko = nazwisko;
this.wiek = wiek;
}
// Metoda to czynność, którą "potrafi wykonać obiekt". // Metoda to czynność, którą "potrafi wykonać obiekt".
// nie piszemy już "static" // nie piszemy już "static"
// Wewnątrz metody można odwoływać się do pól należących do obiektu. // Wewnątrz metody można odwoływać się do pól należących do obiektu.
......
package p11_klasy.podstawy;
public class Przyklad2_Konstruktory {
public static void main(String[] args) {
// Tworzenie obiektów na zasadzie:
// - konstruktor domyślny, które niezainicjowane pola (null, 0)
// - a następnie wpisujemy wszystkie wartości
// ma dwie wady:
// 1) rozwlekłość zapisu
// 2) przez jakiś czas obiekt nie jest poprawnie zainicjowany, nie jest gotowy do pracy
// programista może "zapomnieć" wpisać dane do pól i działać z takim upośledzonym obiektem
Osoba a = new Osoba();
a.imie = "Ala";
a.przedstawSie(); // Ala null 0 lat
a.nazwisko = "Kowalska";
a.wiek = 30;
a.przedstawSie();
System.out.println();
// Gdy w klasie zdefiniujemy odpowiedni konstruktor, będziemy mogli tworzyć obiektu od razu wypełnione danymi
Osoba b = new Osoba("Ola", "Malinowska", 20);
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