Witam, natknąłem się dzisiaj podczas programowania w greenfoocie (platformie do tworzenia gier w Javie) na konstrukcje:
NazwaKlasy.class
Postanowiłem trochę pogrzebać w dokumentacji i dowiedziałem się że istnieje klasa Class, której instancje opisują wszystkie klasy dla przykładu, gdy utworzymy sobie klasę o nazwie Apple, to:
Apple.class
będzie odnosiło się do instacncji klasy Class o nazwie Apple, w której zamieszczone są informacje na temat klasy Apple. Jest to dosyć skomplikowane tym bardziej że zacząłem programować obiektowo kilka dni temu, nie daje mi jednak spokoju sam zapis powyższego wyrażenia. Jak dokładnie kompilator interpretuje to sformułowanie? Nie posiadam zbyt dużej wiedzy na temat "notacji kropkowej" (dot notation, nie wiem jak to przetłumaczyć poprawnie) jednak z przykładów których używałem wynika, że w tym przypadku powinniśmy odnosić się do pola "class" instancji o nazwie "Apple" klasy "Class". Czy oznacza to, że w zmiennej tej przechowywane są informacje o naszej klasie, czy działa notacja ".class" to jakiś szczególny przypadek i funkcjonuje w inny sposób? Wybaczcie za tak niedoprecyzowane pytanie, ale staram się zrozumieć jak kompilator rozumuje kod zapisany w Javie w tym przypadku, co znacznie ułatwiłoby mi pisanie własnego kodu