Typy obiektowe | Kurs Java

Typy obiektowe

W Javie poza danymi przechowywanymi w formie typów prostych (takich jak int, float, …), istnieją również typy obiektowe, czyli konstrukcje przechowujące stan (aktualna wartość przechowywanych danych) oraz zachowanie (zbiór obsługiwanych metod).

Same obiekty zostaną szczegółowo omówione później, jednak w tym miejscu należy o nich wspomnieć ze względu na klasę: String oraz klasę bazową: Object.

Obiekty, podobnie jak zmienne, przechowywane są w pamięci komputera. Dodatkowo na obiekt może wskazywać więcej niż jedna referencja.

Deklarując obiekt musimy podać jego typ oraz typ zmiennej referencyjnej, która będzie na niego wskazywać. Te typy nie muszą być takie same, ale muszą być zgodne. Nowe obiekty tworzymy korzystając z operatora ‘new’.

W powyższym przykładzie zostały zadeklarowane i zainicjowane trzy zmienne: obj1, obj2obj3 oraz dwa obiekty.

  1. Zmienna obj1 jest typu Object i wskazuje na obiekt typu Object.
  2. Zmienna obj2 jest typu Object i wskazuje na obiekt typu String. Możemy tak zrobić, ponieważ te typu są zgodne – obiekt typu String jest jednocześnie obiektem typu Object.
  3. Zmienna obj3 została przypisana do zmiennej obj2, to znaczy, że wskazuje na ten sam obiekt, co ona.

Klasa Object

Java jest językiem o prostej strukturze dziedziczenia, to znaczy, że każda klasa ma jednego rodzica. Dziedziczenie klas zostanie omówione później, teraz wystarczy wiedza, że klasa, która dziedziczy po innej, przejmuje od rodzica zachowanie oraz dodaje swoje własne specyficzne cechy.

Wszystkie klasy w Javie, nawet jeżeli nie mają jawnie podanego rodzica, bezpośrednio lub pośrednio przez swoich przodków dziedziczą po bazowej klasie Object.

Klasa Object wprowadza domyślne zachowania dla wszystkich innych klas, np. metodę equals.

Co również jest dla nas bardzo ważne- skoro każda klasa dziedziczy po klasie Object znaczy to, że każda klasa jest zgodna typem z Object. Dzięki temu do zmiennej referencyjnej typu Object możemy przypisać dowolny obiekt.

Klasa String

String jest to typ obiektowy przechowujący ciąg znaków, czyli zwykły tekst, np. ‘Hello World!’.

Jak przed chwilą powiedzieliśmy, wszystkie klasy dziedziczą zachowanie z klasy Object. W tym wypadku będzie to np. metoda: equals. Dodają również swoje specyficzne zachowanie, np. metodę: trim, która pozbywa się białych znaków z początku i końca stringa.

Należy jednak pamiętać, że to jakie metody możemy wywołać na danym obiekcie zależy od tego, z jakiej referencji korzystamy. Czyli jeżeli będzie to referencja typu Object, do dyspozycji będziemy mieli tylko najbardziej ogólne metody.

 

Programista – Pytania rekrutacyjne

Lista pytań rekrutacyjnych, które pozwolą przygotować Ci się na rozmowę kwalifikacyjną.

No comments
Share:

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *