Witaj Amigo!
A teraz najciekawsze. Zapoznamy się z klasą Class i trochę z Reflection.
Jak zapewne już zrozumiałeś, wszystko w Javie jest obiektem. Co jest wymagane dla obiektu? Co ma w sobie każdy przedmiot i co stanowi o jego istocie?
- Klasa przedmiotowa!
- Prawidłowy! Dobrze zrobiony. Każdy obiekt ma klasę. Ale wracając do przedmiotów. Niektóre obiekty całkowicie zawierają jakąś jednostkę, podczas gdy inne po prostu pomagają nią zarządzać.
Te ostatnie obejmują FileOutputStream lub Thread . Podczas tworzenia obiektu Thread nie jest tworzony żaden nowy wątek. Jest tworzony przez maszynę Java po wywołaniu metody start(). Ten obiekt po prostu pomaga kontrolować proces.
To samo dotyczy FileOutputStream : plik jest przechowywany na dysku, a system operacyjny kontroluje jego przechowywanie i dostęp do niego. Ale możemy z nim wchodzić w interakcje za pośrednictwem obiektów typu Plik, ponownie za pomocą maszyny Java.
Tak, to już zrozumiałem.
- Tak więc do interakcji z klasami jest specjalna klasa i nazywa się - Klasa.
Nie trudno było się domyślić.
- Tak. Za każdym razem, gdy maszyna Java ładuje do pamięci nową klasę, tworzy obiekt typu Class, za pomocą którego można uzyskać informacje o załadowanej klasie.
Z każdą klasą i obiektem związany jest „ obiekt klasy ” .
Przykład | Opis |
---|---|
|
Pobieranie „obiektu klasy” z klasy Integer. |
|
Uzyskanie „obiektu klasy” z klasy int. |
|
Uzyskanie „obiektu klasy” z obiektu typu String. |
|
Uzyskanie „obiektu klasy” z obiektu typu Object. |
- Wow, jakie to ciekawe.
Dlaczego piszesz clazz a nie class?
- Czy pamiętasz, że słowo class jest słowem kluczowym w Javie i nie możesz go używać do nazywania zmiennych?
— Tak, wiem, wiem. Po prostu zapomniałem.
— Czy używałeś już gdzieś obiektu Class?
— Tak, używaliśmy go, kiedy pisaliśmy własną implementację metody równości.
- Tak, możesz porównać, czy obiekty mają te same klasy, jeśli użyjesz metody getClass().
Co można zrobić z tym obiektem?
- Cóż, wiele rzeczy:
Kod Javy | Opis |
---|---|
|
Pobierz nazwę klasy. |
|
Pobierz klasę według nazwy. |
|
Porównaj klasy obiektów. |
Ciekawe, ale nie tak fajne, jak myślałem.
- Chcesz, żeby było fajnie? Jest też Odbicie . Odbicie jest bardzo fajne.
— Co to jest refleksja ?
- Refleksja to zdolność klasy do uzyskania informacji o sobie. Java ma specjalne klasy: Pole to pole, Metoda to metoda, podobnie jak Klasa dla klas. Ponieważ obiekt typu Class umożliwia uzyskanie informacji o klasie, wówczas obiekt typu Field dostarcza informacji o „polu klasy”, a Metoda zawiera informacje o „metodzie klasy”. A oto, co możesz z nimi zrobić:
Kod Javy | Opis |
---|---|
|
Otrzymujemy listę „obiektów klasy” dla interfejsów klasy List |
|
Pobierz „obiekt klasy” klasy nadrzędnej dla klasy String |
|
Otrzymujemy listę metod, które posiada klasa List |
|
Utwórz nowy obiekt klasy String |
|
Pobierz metodę length klasy String, wywołaj ją na łańcuchu s |
- Wow! To jest naprawdę fajne!
- Cieszę się, że to lubisz.
GO TO FULL VERSION