gadzio
11.12.2007, 15:09:19
Witam, od kilku dni zastanawiam się nad tym pytanie: Zasięg zmiennych, poco to jest?
Wiem, iż private można wywoływać tylko w wewnątrz klasy, protected to private tylko, że można to dziedziczyć, ale po co komu to? nie lepiej ich nie używać?
Pozdrawiam i proszę o odpowiedź.
Cysiaczek
11.12.2007, 15:30:37
Musisz na to spojrzeć okiem projektanta.
Większość obiektów posiada atrybuty odpowiedzialne za stan obiektu oraz operacje (metody), które tworzą interfejs.
Interfejs dzieli się na publiczny oraz prywatny. Część publiczna jest przeznaczona dla innych obiektów, które za jego pomocą komunikują się z nim. Część prywatna jest natomiast wewnętrzną sprawą każdego obiektu. Atrybuty też odpowiadają temu podziałowi. Są one o tyle wrażliwe, że jeśli obiekt korzysta dla swoich potrzeb z jakiejś zmiennej, to zazwyczaj polega na wartości, którą ona posiada. Pewność ta jest gwarantowana również tym, że nikt z zewnątrz nie zmieni wartości z np. true na false bez jego wiedzy, bo nie ma dostępu.
Ja zawsze wychodzę od założenia, ze każda zmiana atrybutu powinna być przeprowadzana poprzez interfejs obiektu, a jeśli takiego interfejsu nie ma, to znaczy, że tej zmiany nie powinienem dokonywać.
Pozdrawiam.
gadzio
11.12.2007, 15:48:52
@UP
Dziękuje za odpowiedź, ale jak ktoś z zewnątrz by mógł zmienić jakąs wartość?
Cysiaczek
11.12.2007, 15:54:37
Z zewnątrz oznacz po prostu inny kod, który używa tego obiektu.
itsme
11.12.2007, 20:04:31
z OOP przenosze tutaj
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.