Jason. Cała informatyka w jednym miejscu!

"Object" w języku Java to kolejny temat, który już dawno powinien pojawić się na stronie jako brakujący element serii. Przedstawiam garść informacji o tym, czym jest klasa wszystkich klas w Javie 😀!

"OBJECT" W JĘZYKU JAVA TRZEBA ZNAĆ

Czy wiesz, że każda klasa którą tworzysz ZAWSZE jest klasą potomną 😯? Nawet jeżeli nie zdefiniujesz tego w kodzie i stworzysz sobie taką klasę (w domyśle bazową):

class MyClass {
	
}

to kompilator "cichaczem" dodaje coś od siebie:

class MyClass : Object {
	
}

Dziedziczenie od klasy "Object" 😳! To dlatego, nazywana jest "klasą wszystkich klas", bo "Object" w języku Java jest tą "prawdziwą" klasą bazową. Jest taka, jak inna klasa - można się na nią powoływać, tworzyć obiekty:

Object myObject = new Object();

tylko, że jako jest to typ danych najbardziej bazowy, raczej na niewiele się zda podczas implementacji w naszych programach. Nie podstawimy do pętli, gdy będziemy chcieli operować na kilku różnych typach danych, bo to jest zbyt niebezpieczne (wysokie ryzyko zgłoszenia wyjątku), a poza tym nieprofesjonalne.

TO NA CO MI WIEDZA NA TEN TEMAT?

O, to jest dobre pytanie 😄! Klasa "Object" w języku Java udostępnia parę metod, które mogą być przesłaniane. Trzy jakie warto znać, to:

"toString" opisywałem w innym materiale i to się bardzo przydaje do definiowania sformatowanej niestandardowej treści w momencie podania zmiennej instancyjnej naszej klasy w metodzie "println" (albo "print"):

MyClass myClass = new MyClass();

System.out.println(myClass);

Zwracam Twoją uwagę - nie ma wywoływania żadnej metody, podana jest sama nazwa zmiennej.

"hashCode" i "equals" to mocno powiązane ze sobą metody, a ich znajomość jest kluczowa podczas definiowania kryterium identyczności (czy też "równości") obiektów pochodzących z Twoich klas, które znajdują się w kolekcji. W telegraficznym skrócie (zachęcając ponownie do przeczytania osobnego wpisu 😅) chodzi o naprowadzenie Javy i podanie informacji na podstawie czego (jakich danych składowych i wyrażeń) ma uznać dwa osobne obiekty jednego typu danych za równe.

Liczby łatwo sobie porównać, łańcuchy znaków też. Ale na przykład układy poziomów? W jaki sposób Java ma wywnioskować, że dwa poziomy są takie same 🤔? Na podstawie czego? To są właśnie metody, które pozwalają to zaprogramować.

Klasa "Object" w języku Java

Klasa "Object" w języku Java jest klasą bazową wszystkich klas i każda klasa od niej dziedziczy, nawet jeżeli jawnie tego nie zapiszemy!


Krótki artykuł, który mam nadzieję rozwiał parę wątpliwości. Nie musi Cię obchodzić stricte sama klasa "Object" - bardziej znaj metody tej klasy, a zwłaszcza te trzy, które podałem 🙂.

PODOBNE ARTYKUŁY