Przejdź do treści
Strona główna » Kurs Java wrzesień [4]

Kurs Java wrzesień [4]

  • przez
java, kurs java, spring

Co możemy powiedzieć analizując natomiast poniższy kawałek kodu projektu Company?

Employee employee = new Employee()
Employee employee2 = employee;


Stworzyliśmy 1 instancję klasy Employee oraz stworzyliśmy referencję do tego obiektu w postaci zmiennej employee o typie Employee.
Natomiast dlaczego referencja employee2 wskazuję na referencję employee ? I co to znaczy dla projektu ?

Tworząc instancję new Employee(), Java musiała fizyczne gdzieś przypisać miejsce w pamięci komputera.
Adres do tego miejsca został przypisany w zmiennej employee.
Gdybyśmy stworzyli instancję obiektu new Employee() bez referencji stracilibyśmy adres tego miejsca.

Natomiast stworzyliśmy drugą referencję do tego samego miejsca w postaci zmiennej employee2, co sprawia, że te 2 obiekty wskazują na ten sam obiekt w pamięci. Można więc powiedzieć, że są sobie równe.

Każda klasa w Java dziedziczy ( to słowo omówimy później ) po klasie Object. Możecie wejść do tej klasy i ją obejrzeć w Intellij.
Metoda do porównywania klas w Java jest dziedziczona po klasie Object i nazywa się equals.

public boolean equals(Object obj) {
return (this == obj);
}

Jak już wspomnieliśmy, skoro zmienna employee i employee2 wskazują na to samo miejsce w pamięci, to metoda equals zwróci tutaj true.
Spróbuj natomiast stworzyć sobie 2 identyczne instancje obiektu employee i zobacz, co zwróci equals …



Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *