– OK. Ostatnio zajmowaliśmy się klasami. Dzisiaj opowiem Ci, jak tworzyć obiekty. To bardzo proste. Piszesz słowo kluczowe new, a następnie nazwę klasy, której obiekt chcesz utworzyć.

Przykład
Kot kot = new Kot();
Reader reader = new BufferedReader(new InputStreamReader(System.in));
InputStream is = new FileInputStream(path);

– Przecież ja to już wiem.

– Wiem, że wiesz. Ale słuchaj dalej.

– Podczas tworzenia obiektu możesz w nawiasach przekazać różne argumenty. Więcej powiemy o tym później. A teraz przyjrzyjmy się klasie Kot:

Kod Java Opis
class Kot {
    public String imie;

    public String getImie() {
        return imie;
    }

    public void setImie(String imie) {
        this.imie = imie;
    }
}

imie jest zmienną instancji. Ma ona modyfikator dostępu publicznego, który uwidacznia ją wszędzie w projekcie.

Metoda getImie jest getterem. Zwraca wartość zmiennej instancji imie. Nazwa metody pochodzi od słowa „get” i nazwy zmiennej, która pisana jest wielką literą.

Metoda setImie jest setterem. Jest używana, aby przypisać do zmiennej instancji nową wartość imie. Nazwa metody pochodzi od słowa „set” i nazwy zmiennej, która pisana jest wielką literą. W tej metodzie parametr ma tę samą nazwę, co zmienna instancji, więc poprzedzamy nazwę zmiennej instancji słowem this.

– Czym są te gettery i settery?

– Powszechną praktyką w Javie jest ukrycie zmiennych przed innymi klasami. Zazwyczaj zmienne deklarowane wewnątrz klas mają modyfikator publiczny.

– Aby umożliwić innym klasom zmienianie wartości tych zmiennych, tworzy się parę metod: get i set dla każdej z nich. Metoda get zwraca bieżącą wartość zmiennej. Metoda set nadaje nową wartość tej zmiennej.

– Jaki w tym sens?

– Jeśli nie chcemy, aby ktokolwiek zmieniał wartość zmiennej instancji, możemy po prostu nie tworzyć dla niej metody set bądź możemy po prostu ustawić ją jako prywatną. Możemy także wprowadzić dodatkowe kontrole danych do metody. Jeśli przekazana nowa wartość jest nieprawidłowa, nic się nie zmieni.

– Rozumiem.

– Ponieważ klasa może mieć wiele zmiennych, nazwy metod get i set zazwyczaj zawierają tych nazwy zmiennych, których dotyczą.

– Jeśli zmienna ma nazwę „imie”, to metody będą się nazywać setImie i getImie itp.

– Rozumiem. To chyba dość logiczne.

– Tutaj jest więcej przykładów pracy z nowoutworzonym obiektem:

Krok Kod Opis
1
new Kot();
Tworzy obiekt Kot
2
Kot kotOskar = new Kot();
Zapisuje obiekt Kot w zmiennej kotOskar
3
kotOskar.imie = "Oskar";
kotOskar.wiek = 6
kotOskar.waga = 4;
Zapełnia obiekt danymi: imie, wiek, waga
4
kotOskar.sleep();
Wywołuje metodę na obiekcie
5
kotOskar.walka(kotKafel);
Spraw, by obiekty oddziaływały na siebie.