Podejście obiektowe do programowania
-PainKiller-
24.10.2010
Obiektowość zmienia podejście i spojrzenie na programowanie. Ideą jest ułatwienie życia programistą, pewnego rodzaju odniesienie kodu do świata rzeczywistego.
Dla zobrazowania napiszę prymitywny program mający na celu przedstawienie istoty programowania obiektowego ;
stworzymy sobie klasę samolot, klasa jest niczym innym jak typem danych, wbudowane typy takie jak char, int, string(z biblioteki) czy inne nie posiadają możliwości wprowadzenia takich informacji jak "obecna wysokosc" czy "nazwa" (jednocześnie)
nie kompilowałem, zakładam że działa
mamy tutaj konstruktor i trzy metody, dwie sterujace i jedna informujaca o naszym samolocie, mozemy nim sterowac góra/dół a także możemy sie dowiadywać na jakiej wysokosci jestesmy, wystarczy stworzyć menu i animacje i już mamy gre....
oczywiscie mozna robic kolejne samoloty zmieniajac tylko nazwe a odnosimy sie do nich tak samo
Dla zobrazowania napiszę prymitywny program mający na celu przedstawienie istoty programowania obiektowego ;
stworzymy sobie klasę samolot, klasa jest niczym innym jak typem danych, wbudowane typy takie jak char, int, string(z biblioteki) czy inne nie posiadają możliwości wprowadzenia takich informacji jak "obecna wysokosc" czy "nazwa" (jednocześnie)
#Include <iostream> using namespace std; class samolot { public: //zmienne(pola, właściwości) lub funkcje(metody) - publiczne, można sie do nich odwołać z każdego miejsca programu. int wysokosc; samolot() //deklaracja "konstruktora" jest to funkcja ktora wywoływana jest podczas tworzenia obiektu, kompilator pozna ze jest to konstruktor w momencie gdy bedzie posaiadał taka sama nazwe jak klasa { wysokosc = 0; //nadajemy stworzonemu obiektowi wlasciwosc wysokosc na zero; (obiektu jeszcze nie mamy) } void podaj_wysokosc() { cout<<"jestesmy teraz na wysokosci: "<<wysokosc<<endl; } void w_gore(int ile) { wysokosc += ile; } void w_dol(int ile) { wysokosc -= ile; } private: //zmienne(pola, właściwości) lub funkcje(metody) - prywatne, można sie do nich odwołać tylko pomiędzy klamrą otwierającą deklaracje klasy a zamykającą. }; //zakończenie deklaracji klasy[u] średnikiem[/u] main() { samolot tupolev; //STWORZYLIŚMY obiekt "tupolev" i jednoczesnie wywolaismy konstruktor czyli obiekt ma juz jedna wlasciwosc jest to jego wysokość na jakiej sie znajduje, konstruktor dał mu zero //dowiemy sie gdzie jestesmy tupolev.podaj_wysokosc(); //wzniesiemy sie 100 do gory tupolev.w_gore(100); tupolev.podaj_wysokosc(); //zlecimy 50 w dol tupolev.w_dol(50); tupolev.podaj_wysokosc(); system("pause"); }
nie kompilowałem, zakładam że działa
mamy tutaj konstruktor i trzy metody, dwie sterujace i jedna informujaca o naszym samolocie, mozemy nim sterowac góra/dół a także możemy sie dowiadywać na jakiej wysokosci jestesmy, wystarczy stworzyć menu i animacje i już mamy gre....

oczywiscie mozna robic kolejne samoloty zmieniajac tylko nazwe a odnosimy sie do nich tak samo
samolot F16; F16.w_gore(500); F16.w_dol(100); F16.podaj_wysokosc(); //wynik powinien wyjsc ze jestesmy na 400 <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' />
pAC
25.10.2010
mozna tez powiedziedz ze string to łańcuchy znaków albo klasa sluzy do sterowania napisami

G[o]Q
25.10.2010
hmm w zasadzie to powinien napisac to w gotowych funkcjach bo to przyklad klasy a nie tutorial

kur3k
01.12.2010
samolot tupolev; to nie czasem instancja klasy, nie jestem pewien, nie pisze w C++ 
fajny tut dot. OPP Metody i atrybuty klas - a metody i atrybuty instancji ( w python ), na początek styka

fajny tut dot. OPP Metody i atrybuty klas - a metody i atrybuty instancji ( w python ), na początek styka

G[o]Q
01.12.2010
tupolev to obiekt(instancja/egzemplarz) klasy samolot
// nie uzywa sie nazwy metody tylko funkcje skladowe szczegolnie jesli piszesz w tutach
// nie uzywa sie nazwy metody tylko funkcje skladowe szczegolnie jesli piszesz w tutach
-PainKiller-
01.12.2010
nie wiem kto tak ustalił ale przypuszczam że to jedynie Twoje zdanie do którego oczywiście się nie przystosuję, nawet ludzie pracujacy w tym fachu mówią "metoda"// nie uzywa sie nazwy metody tylko funkcje skladowe szczegolnie jesli piszesz w tutach
kur3k
04.12.2010
G[O]Q nie wiem, ale u mnie na studiach każdy używa metoda/w każdej książce z OPP mam napisane metoda. Ale funkcja składowa też pewnie poprawnie, metoda == funkcja, a każda funkcja jest składową klasy.
Tak naprawdę śmieszą mnie Wasze tuty na temat programowania, używasz słowa konstruktor a nie piszesz czym jest ? Dodajesz kod, a nie lepiej skupić się na czysto teoretycznym podejściu, wypocić temat, a kod na końcu ?
Tak naprawdę śmieszą mnie Wasze tuty na temat programowania, używasz słowa konstruktor a nie piszesz czym jest ? Dodajesz kod, a nie lepiej skupić się na czysto teoretycznym podejściu, wypocić temat, a kod na końcu ?
kur3k
08.03.2011
Taka mała informacja do czytających ten artykuł, nie czytaj a jak przeczytałeś zrestartuj mózg. Programowanie zorientowane obiektowo jest tematem na wiele stron ... A nie na kilka zdań, i uważam, że ten artykuł Ci zamąci w głowie!