Ten blog nie jest już rozwijany. Wraz ze wszystkimi artykułami zostały przeniesiony pod adres wmroczkowski.pl

Czy chcesz przejść pod nowy adres?

środa, 22 lipca 2009

Programowanie obiektowe (cz. 3) - klasy

Jeżeli przyjrzymy się otaczającej nas rzeczywistości okaże się, że występują w niej różnego rodzaju obiekty, takie jak drzewa, samochody, domy, łodzie, zwierzęta, itp. Na przykład samochód ma jakiś kolor, opony, wyposażenie, lub pojemność silnika. To jest jego charakterystyka lub, jak to byśmy określili w terminologii obiektowej, właściwości. Dany samochód potrafi różne rzeczy robić, np. hamować, przyspieszać, trąbić, sygnalizować kierunek, itp. To są jego zachowania, lub w terminologii obiektowej metody. Te cechy i zachowania są wspólne dla wszystkich samochodów. Oczywiście nie oznacza to, że wszystkie samochody są np. czerwone. Chodzi o to, że każdy samochód ma jakiś kolor, jakąś pojemność silnika, itd.

Wracając do programowania obiektowego, jeżeli mówimy o klasie mamy na myśli wspólny zbiór właściwości i metod jakiegoś obiektu, które będzie pasował do wszystkich typów danego obiektu, w tym przypadku samochodu. Właściwości danego obiektu mają nazwę i wartość. Niektóre wartości można zmieniać, a niektóre nie. Jeżeli np. utworzymy klasę Car a w niej takie właściwości jak color i weight to kolor danego samochodu może się zmienić, np. po lakierowaniu ale jego waga się nie zmieni.

Niektóre właściwości obiektu reprezentują jego stan. Stan odnosi się do tych właściwości obiektu, które ulegają zmianie pod wpływem pewnych zdarzeń (metod) a niekoniecznie można je modyfikować bezpośrednio. Np. właściwość maxspeed nie jest wartością stałą. Zależy od nawierzchni po której przemieszcza się samochód, jakości paliwa, pojemności silnika oraz rodzaju opon.

Jeżeli mówimy o metodach w programowaniu obiektowym a mamy za sobą doświadczenie związane z programowanie strukturalnym, to możemy powiedzieć, że metody są od odpowiednikiem funkcji. Podobnie jak funkcje, metody mogą pobierać dowolną ilość parametrów. Niektóre metody przetwarzają zewnętrzne dane, przesłane jako parametry, ale mogą również działać na właściwościach własnych obiektów. Możemy np. utworzyć metodę accelerate, która sprawdzi poziom paliwa naszego obiektu Car i ustali czy przyspieszenie w ogóle jest możliwe. Może również zmienić stan obiektów poprzez modyfikację ich właściwości, np. prędkości samochodu.

Brak komentarzy: