![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 26.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Jestem kompletnie zielony w temacie programowania obiektowego - probuje zmienic przyzwyczajenia.
Mam pytanie, poniewaz nie dysponuje odpowiednia literatura. Czy mozliwy jest bezposredni dostep do danych jednej klasy z poziomu metody innej klasy (nie wiem czy to ujalem) Moze to zobrazuje.
Czy jedynym sposobem, jest utworzenie w klasie faktura_int funkcji zwracajacej wszystkie zmienne z poszczegolnych metod klasy w postaci np tablicy, a nastepnie wywolanie danej metody w metodzie klasy uzytkownik? ($jakas_zmienna (w danej metodzie) = $fak -> zwroc_dane() ![]() Mam nadzieje, ze w miare udalo mi sie opisac problem |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
nie:
// do danych odwoluje sie ciagle w kolejnych metodach tej klasy tak: $this->$jakas_zmienna = cos_tam*$this->$jakas_zmienna :-) a: // do danych odwoluje sie ciagle w kolejnych metodach tej klasy tak: $this->jakas_zmienna = cos_tam* $this->jakas_zmienna :-) :-) -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 26.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Oczywisty blad z mojej strony, ale wiadomo, parser i tak by tego nie puscil...
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Czy to rozwiązuje Twój problem, bo trochę namieszałeś?
Cytat Czy mozliwy jest bezposredni dostep do danych jednej klasy z poziomu metody innej klasy Co rozumiesz jako "bezpośredni dostęp"? Powinieneś przekazać obiekt jako parametr metody i wtedy za pomocą getterów (lub bezpośrednio właśnie ale tylko do pól publicznych) możesz dostać się do interesujących Cię danych. Bezpośredni dostęp jest możliwy tylko do pól publicznych, natomiast dostęp do wszystkich danych obiektu nie powinien być możliwy, gdyż byłoby to sprzeczne z założeniem hermetyzacji. Najczęściej jest tak, że w trakcie implementacji konkretnej klasy dzieli się dane na te tylko do użytku przez obiekt i na te, będące wynikiem jakiś działań, do których można się odwołać za pomocą odpowiednich metod (poczytaj o getterach i setterach). Danym wewnętrznym nadaje się modyfikator private lub protected, natomiast w przypadku danych publicznych albo stosuje się modyfikator protected i udostępnia odpowiednie metody (gettery i settery) albo używa się metod magicznych, albo też (co nie jest dobre) nadaje się dostęp publiczny. Cytat ok, powyzsze funkcje wyprodukowaly jakies dane (tyle, ze ich nie zwracaja) za mało kodu dałeś, nie znamy implementacji tych metod, skoro nic nie zwracają, to czy aby na pewno na końcu ciała metody jest instrukcja return <COŚ_TAM>? Czy te metody przypisują jakieś dane do pól obiektu? Tego nie wiemy. A tak na marginesie: Cytat nie dysponuje odpowiednia literatura proszę Cię, są miliony artykułów w sieci na temat programowania obiektowego, wystarczy przejrzeć pierwsze wyniki od google. -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 26.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
OK, ide poszukac czegos dla siebie na helionie.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 14:07 |