![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 3.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Hey wszystkim!
![]() Ostatnio napotkałem na mały problem, a raczej na definicję, którą podyktował nauczyciel na lekcji ^^ Cytat static - statyczna - składowe statyczne są wspólne dla wszystkich obiektów danej klasy. Jeśli słowem tym zostanie poprzedzona definicja metody lub zmiennej istnieje nawet wtedy, gdy nie został utworzony żaden obiekt danej klasy Uważam, że składowe statyczne należą tak naprawdę do klasy, a nie do obiektów, a przynajmniej, to właśnie z klasą są bezpośrednio, ściśle związane. Może źle rozumiem(proszę o naprowadzenie), ale przecież wywołanie składowej statycznej z poziomu obiektu jest po prostu głupie(przynajmniej z mojego punktu widzenia). Przecież wywołując składową z poziomu klasy możemy zmienić gdzieś jej wartość, co prowadzi do patologii kiedy będzie ona użyta z poziomu obiektu(mam na myśli, że jedno będzie w jednym miejscu, a drugie w innym i może spowodować błąd). W php o ile się orientuję odwołanie się w taki sposób:
jest niemożliwe(może czegoś nie wiem), natomiast w javie to działa, ale w eclipsie mam wykrzykniki i podpowiedzi, żeby zmienić z poziomu obiektu na poziom klasy lub też zastosować specjalny "kruczek", czy jakąś tam instrukcję, żeby było poprawnie... Czy mógłby mi ktoś podpowiedzieć, powiedzieć jak jest dokładnie? Może to są szczegóły(w sumie bez problemów używam tych rzeczy, ale jednak chodzi mi o sposób dokładnego zrozumienia), ale dla mnie imo ważne ![]() Z góry dziękuję i pozdrawiam, szubi |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) ![]() ![]() |
programista zrobi tyle na ile mu pozwolisz projektując klasę
Ten post edytował aniolekx 30.10.2014, 10:55:20 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Twoje rozumowanie jest poprawne: elementy statyczne należą do klasy, nie obiektów. To, że są one "wspólne dla wszystkich obiektów danej klasy" to jedynie efekt uboczny.
2. Wywoływanie metod/właściwości statycznych przez obiekty, tj.: $obj->metodaStatyczna() jest głupie, pozbawione sensu i z niewiadomych powodów jednak dopuszczalne - ale to już uroki PHP. ![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 3.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
No tak, to jest oczywiste. Tak samo jest przecież w singletonie, implementacji wzorca proxy przy łączeniu z bazą jak i każdym innym wykorzystaniu, bo tak jak wspomniałeś to ode mnie zależy jak zaprojektuję klasę. To co napisałeś, to zyskujemy szybkość zmiennej statycznej i prywatność składowej, ok. Mi nie chodzi o zastosowanie odnośnie kodu, a bezpośrednie zrozumienie definicji, ponieważ mam swój pogląd, który przedstawiłem powyżej i nagle ktoś wpaja mi inny bez żadnej argumentacji. Dlatego moje pytanko bardziej tyczy się sposobu rozumienia, nie bezpośredniego użycia w kodzie
![]() Tak, czy siak dziękuję za zainteresowanie tematem aniolekx ![]() Bardzo Ci Crozin dziękuję. O taką odpowiedź mi właśnie chodziło ![]() Pozdrawiam, szubi |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 12:35 |