Wprowadzenie do programowanie obiektowego w języku C++

Wielkość: px
Rozpocząć pokaz od strony:

Download "Wprowadzenie do programowanie obiektowego w języku C++"

Transkrypt

1 Wprowadzenie do programowanie obiektowego w języku C++ Część pierwsza Podstawy programowania obiektowego Autor Roman Simiński Kontakt romansiminski@usedupl wwwusedupl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim uczestnictwa Opracowanie to jest chronione prawem autorskim Wykorzystywanie jakiegokolwiek fragmentu w celach innych niż nauka własna jest nielegalne Dystrybuowanie tego opracowania lub jakiejkolwiek jego części oraz wykorzystywanie zarobkowe bez zgody autora jest zabronione

2 Od programowanie proceduralnego do obiektowego Podejście obiektowe na prostym przykładzie Problem Napisać program wyświetlający na pustym ekranie tekstowym zadany znak (np * ), pozwalający na przesuwanie tego znaku przy użyciu klawiszy sterowania kursorem X Y * Copyright Roman Simiński Strona : 2

3 Od programowanie proceduralnego do obiektowego Podejście obiektowe na prostym przykładzie Analiza Pozycja znaku będzie opisana parą zmiennych x i y, znak będzie sparametryzowany i opisany zmienną code Przesuwanie znaku polega na wymazywaniu znaku z pozycji poprzedniej i ponownym wyświetlaniu na nowej pozycji, o ile jest ona prawidłowa X Y Gdy klawisz LEFT: jeżeli x > 1 to x = x - 1 Gdy klawisz DOWN: jeżeli y < 25 to y = y + 1 * 7980 Gdy klawisz UP: jeżeli y > 1 to y = y - 1 Gdy klawisz RIGHT: jeżeli x < 80 to x = x + 1 Copyright Roman Simiński Strona : 3

4 Od programowanie proceduralnego do obiektowego Podejście obiektowe na prostym przykładzie Realizacja proceduralna założenia wstępne Programista ma do dyspozycji: Funkcję clearscreen, czyszczącą ekran tekstowy Funkcję writecharxy, wyświetlającą na ekranie znak na określonej pozycji Funkcję getkey, której rezultatem jest kod klawisza, w tym tzw klawiszy sterujących kursorem Stałe określające kody klawiszy, wtym klawiszy sterujących kursorem (dla funkcji getkey): KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_ESC Copyright Roman Simiński Strona : 4

5 Od programowanie proceduralnego do obiektowego Podejście obiektowe na prostym przykładzie Realizacja proceduralna obsługa klawiatury Znaki sterujące na starszym bajcie, zwykłe na młodszym (notacja szesnastkowa): enum KEY_CODES KEY_UP = 0x4800, KEY_DOWN = 0x5000, KEY_LEFT = 0x4b00, KEY_RIGHT = 0x4d00, KEY_ESC = 0x001b }; Przykładowa implementacja funkcji getkey (biblioteka conio firmy Borland): int getkey( void ) int key = getch(); return ( key == 0 )? getch() << 8 : key; } Copyright Roman Simiński Strona : 5

6 Od programowanie proceduralnego do obiektowego Podejście obiektowe na prostym przykładzie Realizacja proceduralna obsługa ekranu Wersje wykorzystujące bibliotekę conio (kompilatory firmy Borland) void clearscreen( void ) clrscr(); } void writecharxy( int x, int y, char c ) gotoxy( x, y ); putch( c ); } Copyright Roman Simiński Strona : 6

7 Od programowanie proceduralnego do obiektowego Podejście obiektowe na prostym przykładzie Realizacja proceduralna najprostsza wersja int key, x = 40, y = 12, code = '*'; clearscreen(); do writecharxy( x, y, code ); /* Wyświetl znak na zadanej pozycji */ key = getkey(); /* Czekaj na naciśnięcie klawisza */ writecharxy( x, y, ' ' ); /* Wyma ż znak, potencjalny ruch */ switch( key ) case KEY_UP : if( y > 1 ) --y; /* Przeskocz wyżej */ break; case KEY_DOWN : if( y < 24 ) ++y; /* Przeskocz niżej */ break; case KEY_LEFT : if( x > 1 ) --x; /* Przeskocz w lewo */ break; case KEY_RIGHT : if( x < 80 ) ++x; /* Przeskocz w prawo */ break; } } while( key!= KEY_ESC ); Copyright Roman Simiński Strona : 7

8 Od programowanie proceduralnego do obiektowego Podejście obiektowe na prostym przykładzie Realizacja proceduralna wady techniczne Brak jawnego powiązania pomiędzy x, y i code A przecież te zmienne opisują jeden obiekt Brak jawnego powiązania pomiędzy fragmentem wyświetlającym (ukrywającym) punkt Czy rzeczywiście funkcja writecharxy dostała prawidłowe parametry? Siermiężne testowanie poprawności współrzędnych Realizacja proceduralna wady metodyczne Z kodu programu nie wynika bezpośrednio, jakie jest jego przeznaczenie, brak powiązań pomiędzy akcjami a danymi Sam algorytm jest prosty, lecz jego zapis nie wspomaga zrozumienia, jaka jest istota problemu Copyright Roman Simiński Strona : 8

9 Od programowanie proceduralnego do obiektowego Podejdźmy do problemu inaczej spróbujmy zrozumieć jego istotę Zapraszamy na: Krótki wywiad z głównym bohaterem programu! Copyright Roman Simiński Strona : 9

10 Wtorek 16 maja 2006 Redaktor Prowadzący Roman Simiński Bohaterem dzisiejszego wywiadu jest ruchomy punkt ekranowy Dzięki temu wyjątkowemu wywiadowi poznamy unikatowe fakty z życia przedstawicieli tego gatunku Fakty IT gazeta c o d z i e n n a Niecodzienny dodatek Gazety Codziennej Tylko u nas, ekskluzywny wywiad z głównym bohaterem Programu Jak się nazywasz? No, wiesz, na imię mam nieciekawie jestem R, po prostu R Kim jesteś? Jestem ruchomym punktem ekranowym Ponieważ zasuwam po całym ekranie, można o mnie powiedzieć z angielska, że jestem jednym z Runner ów Czyli może Was być więcej? Takich jak ja może być więcej W tym programie potrzeba tylko jednego Runnera, więc oto jestem Powiedz nam coś o sobie Co tu dużo gadać Jak trzeba to mnie widać, jak nie trzeba to znikam Potrafię się przesunąć o jedno pole w górę, w dół, w lewo lub w prawo Nie wylecę poza ekran to pewne dbam o to Możesz mi podać pozycję ekranową oraz znak, jakim mam być

11 Wtorek, 16 maja 2006 Jak to możesz mi podać? Tajemnice życia Runnerów ujawnione prawie wszystkie intymne szczegóły, tylko w dodatku Fakty IT gazeta c o d z i e n n a Co jak to zwyczajnie Przecież wiesz jak mam na imię, to mnie zawołaj, ustal gdzie mam być na ekranie i jak mam wyglądać W ogóle to możesz mną sterować, zawołaj mnie i prześlij mi polecenie Jak niby mam Ci przesyłać polecenia? Jaki ty jesteś no, niedoinformowany Przecież już Ci mówiłem, co potrafię Dokładnie polecenia nazywają się: show, hide, moveup, movedown, moveleft, moverigt Dodatkowo mam swoją wewnętrzną pamięć i trzymam tam wszystko, co powinienem wiedzieć Pozycję przechowuję w komórkach o nazwie x i y a znak, jakim mam być w szufladce code Chcesz, to mi coś tam wstaw Co łaska, byle by to było legalne Wiesz, my gwiazdy programów musimy uważać A skąd Ty to wszystko wiesz i potrafisz? Nauczył mnie tego programista Wymyślił, że będą Runner y, określił, co każdy Runner powinien wiedzieć, co powinien robić A potem nauczył nas, Runner ów jak to wszystko mamy robić Ja jestem Runnerem, to umiem to wszystko Każdy Runner umie to wszystko No, przydałoby się, żeby nauczyła nas jeszcze kilku rzeczy, no wiesz ale nie nauczył :( Strona 2 Wywiady

12 Wtorek, 16 maja 2006 Tajemnice życia Runnerów ujawnione prawie wszystkie intymne szczegóły, tylko w dodatku Fakty IT gazeta c o d z i e n n a A skoro już tu jesteś mogę trochę Ciebie poużywać? Taaak, wy to, jak zwykle, zawsze o jednym A dobra masz mieć, nie jestem mydełko, nie wymydlę się Ale ostrożnie, najpierw Ci wszystko wyjaśnię Jeżeli chcesz, żebym wiedział, że mam się pojawić np w 40-stej kolumnie 12-go wiersza, to piszesz w swoim programie: Rx = 40; Ry = 12; Zauważ, że piszesz najpierw moje imię, potem po kropce nazwę miejsca, gdzie przechowuję dane To miejsce nazywam polem Możesz do tego pola przypisać wartość To tak, jakbyś mi wkładał tą wartość do kieszeni Jeżeli chcesz, żebym pokazał się na ekranie piszesz: Rshow(); I znowu, piszesz moje imię, potem po kropce nazwę polecenia, jakie mam wykonać To tak jakbyś do mnie wysyłał komunikat To wygląda jak wywołanie funkcji w języku C, i rzeczywiście, na Twój komunikat odpowiadam wywołaniem funkcji, którą mam w siebie wbudowaną Taka funkcja nazywa się funkcją składową Strona 3 Wywiady

13 Wtorek, 16 maja 2006 Tajemnice życia Runnerów ujawnione prawie wszystkie intymne szczegóły, tylko w dodatku Fakty IT gazeta c o d z i e n n a Jeżeli mam się przesunąć o jedno pole do góry, potem o jedno w lewo i jeszcze raz o jedno do góry, to piszesz: RmoveUp(); RmoveLeft(); RmoveUp(); Jeżeli chcesz, żebym przeszedł po kwadracie: pięć kroków w prawo, pięć w dół, pięć w lewo i pięć w górę, to napiszesz np: int steps; Rx = 1; // Powiedz mi, ską d mam wystartować Ry = 1; Rshow(); for( steps = 5; steps > 0 ; steps-- ) RmoveRight(); // Id ę w prawo for( steps = 5; steps > 0 ; steps-- ) RmoveDown(); // Id ę w dół for( steps = 5; steps > 0 ; steps-- ) RmoveLeft(); // Id ę w lewo for( steps = 5; steps > 0 ; steps-- ) RmoveUp(); // Id ę w gór ę Strona 4 Wywiady

14 Wtorek, 16 maja 2006 Tajemnice życia Runnerów ujawnione prawie wszystkie intymne szczegóły, tylko w dodatku Fakty IT gazeta c o d z i e n n a Czy możesz naszym czytelnikom wyjaśnić jak są zbudowane funkcje składowe, np show, hide? Mogę, ale mi się nie chce Zapytaj o to programistę Ja jestem od zasuwania na ekranie a nie od programowania Szkoda, ale i tak serdecznie dziękujemy za rozmowę Strona 5 Wywiady

15 Podejście obiektowe na prostym przykładzie Realizacja obiektowa najprostsza wersja Runner R; Rx = 40; // Ustal pozycj ę i wygląd Runnera Ry = 12; Rcode = '*'; clearscreen(); Rshow(); do switch( key = getkey() ) case KEY_UP : RmoveUp(); break; case KEY_DOWN : RmoveDown(); break; case KEY_LEFT : RmoveLeft(); break; case KEY_RIGHT : RmoveRight(); break; } } while( key!= KEY_ESC ); Copyright Roman Simiński Strona : 15

16 Podejście obiektowe na prostym przykładzie Anatomia Runnera pola Runner to nazwa klasy obiektów Wszystkie obiekty klasy Runner będą posiadały te same cechy i umiejętności To, co obiekt wie o sobie i swoim otoczeniu pamiętane jest w jego polach Polami w klasie Runner są x i y opisujące ekranową pozycję obiektu, oraz code opisujące wygląd obiektu class Runner public : int x, y, code; Wszystkie elementy zadeklarowane w sekcji public są dostępne dla tych, którzy chcą używać obiektu klasy Runner void show(); void hide(); }; void moveup(); void movedown(); void moveleft(); void moveright(); Copyright Roman Simiński Strona : 16

17 Podejście obiektowe na prostym przykładzie Anatomia Runnera funkcje składowe Do obiektów można wysyłać komunikaty Ich nazwy to odpowiednio: moveup, movedown, moveleft, moveright, show, hide switch( key = getkey() ) case KEY_UP } : RmoveUp(); break; case KEY_DOWN : RmoveDown(); break; case KEY_LEFT : RmoveLeft(); break; case KEY_RIGHT : RmoveRight(); break; Copyright Roman Simiński Strona : 17

18 Podejście obiektowe na prostym przykładzie Anatomia Runnera funkcje składowe Obiekt odpowiada na komunikaty wywołując metody Metody są implementowane poprzez funkcje składowe, których prototypy są zadeklarowane w definicji klasy: class Runner public : int x, y, code; void show(); void hide(); }; void moveup(); void movedown(); void moveleft(); void moveright(); Copyright Roman Simiński Strona : 18

19 Podejście obiektowe na prostym przykładzie Anatomia Runnera funkcje składowe Właściwe definicje (zawierające konkretny kod) umieszczone są zwykle (choć niekoniecznie) poniżej definicji klasy Runner Nazwa każdej metody jest kwalifikowana nazwą klasy void Runner::show() writecharxy( x, y, code ); } void Runner::hide() writecharxy( x, y, ' ' ); } Copyright Roman Simiński Strona : 19

20 Podejście obiektowe na prostym przykładzie Anatomia Runnera funkcje składowe void Runner::moveUp() hide(); if( y > 1 ) --y; show(); } void Runner::moveDown() hide(); if( y < 24 ) ++y; show(); } void Runner::moveLeft() hide(); if( x > 1 ) --x; show(); } void Runner::moveRight() hide(); if( x < 80 ) ++x; show(); } Wewnątrz każdej funkcji składowej, dostępne są wszystkie pola obiektu i inne funkcje składowe Copyright Roman Simiński Strona : 20

21 Pojęcie obiektu Istnieje wiele, różniących się od siebie definicji pojęcia obiekt Tutaj przyjmiemy następującą definicję: Obiekt jest abstrakcją pewnego konkretnego bytu ze świata rzeczywistego, reprezentujący rzecz (obiekt fizyczny), pojęcie (obiekt konceptualny) lub pewny byt programistyczny nie mający swojego odpowiednika w rzeczywistości Pojęcie klasy Istnieje wiele, różniących się od siebie definicji pojęcia klasa Tutaj przyjmiemy następującą definicję: Klasa określa właściwości i możliwości każdego obiektu do niej należącego, definiuje zatem to, jak obiekt jest zbudowany i co potrafi W szczególności klasa zawiera specyfikację danych i metod, informację o typie i reprezentacji pól, implementację metod, informacje dotyczące relacji i powiązań z innymi klasami Copyright Roman Simiński Strona : 21

22 Trzy podstawowe cechy obiektu Tożsamość (ang identity) Stan (ang state) Działanie, zachowanie (ang behavior) Copyright Roman Simiński Strona : 22

23 Tożsamość Tożsamość (ang identity), pozwala na odróżnienie danego obiektu od każdego innego Programista przypisuje obiektowi unikatową nazwę lub włącza go do identyfikowalnej kolekcji obiektów, lub odwołuje się do obiektu posługując się jego adresem w pamięci Copyright Roman Simiński Strona : 23

24 Stan Stan (ang state), opisuje to co obiekt w danym momencie powinien wiedzieć aby sprawnie działać Stan obiektu w danym momencie opisany jest zestawem atrybutów i ich wartości Atrybuty są nazwami wewnętrznych danych obiektu, opisujących jego stan Atrybuty zwane są polami (ang fields) lub składowymi danych Wartości atrybutów mogą się zmieniać w czasie wykonania programu Copyright Roman Simiński Strona : 24

25 Zdolność do działania Zdolność do działania (ang behavior) opisuje operacje, które obiekt może wykonać Operacje są realizowane poprzez wykonanie metod (ang methods) zwanych w C++ funkcjami składowymi (ang member functions) Metody są jak procedury lub funkcje w programowaniu proceduralnym mogą otrzymywać parametry, mogą zwracać wartości Metody są jednak częścią obiektu i mogą być aktywowane wtedy, gdy obiekt zostanie o to poproszony Wykonanie metod zwykle zmienia stan obiektu a więc wartości jego pól Copyright Roman Simiński Strona : 25

26 Najważniejsze cechy podejścia obiektowego Abstrakcja (ang abstraction) Hermetyzacja (ang encapsulation) Dziedziczenie (ang inheritance) Polimorfizm (ang polymorphism) Copyright Roman Simiński Strona : 26

27 Abstrakcja Podejście obiektowe eksponuje rolę obiektu jest on abstrakcją pewnego konkretnego bytu ze świata rzeczywistego, reprezentującego rzecz (obiekt fizyczny) lub pojęcie (obiekt konceptualny) Abstrakcja pozwala postrzegać modelowaną rzeczywistość bez wnikania w jej wewnętrzną strukturę Elementy, które w danym momencie są nieistotne mogą zostać ukryte lub nawet pominięte Obiekty rzeczywiste Abstrakcyjny model analityczny Copyright Roman Simiński Strona : 27

28 Abstrakcja, cd Cechy Akcje Marka Model Rok produkcji Nr rejestracyjny Kolor nadwozia Nr silnika Podaj średnie spalanie Podaj przebieg Reprezentacja obiektowa Obiekty rzeczywiste Abstrakcyjny model analityczny Copyright Roman Simiński Strona : 28

29 Abstrakcja, cd Obiekt jest jest dostawcą pewnych informacji oraz usług Nie musimy wiedzieć jak obiekt coś robi ale co robi Nie musimy wiedzieć jak obiekt coś przechowuje ale co przechowuje class Runner public : void show(); void hide(); }; void moveup(); void movedown(); void moveleft(); void moveright(); Copyright Roman Simiński Strona : 29

30 Hermetyzacja Hermetyzacja pozwala obiektom kontrolować poprawność swojej reprezentacji zewnętrznej Osiąga się to poprzez ukrycie (ang information hiding) pól obiektu przed użytkownikiem zewnętrznym Zastosowanie hermetyzacji wymusza udostępnianie użytkownikowi publicznego interfejsu składającego się metod, które mają publiczny modyfikator widoczności Ukryte części obiektu są niedostępne na zewnątrz i mogą być tylko wykorzystane przez metody dostępowe Składowe publiczne Składowe prywatne BigArray additem getitem finditem sort Ukryta reprezentacja fizyczna Copyright Roman Simiński Strona : 30

31 Hermetyzacja,cd Klasa powinna ukrywać przed jej użytkownikiem szczegóły implementacyjne Zmiana implementacji powinna być dla użytkownika klasy przeźroczysta Zasada hermetyzacji postuluje ukrywanie nie tylko szczegółów realizacyjnych, ale również pól i sposobów ich reprezentacji Szczegóły widoczne Szczegóły ukryte Runner R; Rx = 40; Ry = 12; Rcode = '*'; cout << "X:" << Rx << endl; cout << "Y:" << Ry << endl; cout << "Kod:" << Rcode << endl; Runner R; RsetX( 40 ); RsetY( 12 ); RsetCode( '*' ); cout << "X:" << RgetX() << endl; cout << "Y:" << RgetY() << endl; cout << "Kod:" << RgetCode() << endl; Copyright Roman Simiński Strona : 31

32 Hermetyzacja, cd class Runner public : int x, y, code; }; void show(); void hide(); void moveup(); void movedown(); void moveleft(); void moveright(); class Runner public : void setx( int newx ); void sety( int newy ); void setcode( int newcode ); int getx(); int gety(); int getcode(); void show(); void hide(); void moveup(); void movedown(); void moveleft(); void moveright(); private: int x, y, code; }; Copyright Roman Simiński Strona : 32

33 Hermetyzacja, cd Hermetyzacja pól pozwala na kontrolowanie poprawności danych przekazywanych obiektowi Runner R; Rx = -400; Ry = 1200; Błędna pozycja ekranowa, bezpośredni dostęp do pól obiektu Rcode = '*'; Rshow();? Copyright Roman Simiński Strona : 33

34 Hermetyzacja, cd Runner R; RsetX( -400 ); RsetY( 1200 ); Błędna pozycja ekranowa, dostęp do pól obiektu za pośrednictwem metod RsetCode( '*' ); Rshow(); void Runner::setX( int newx ) if( isxonscreen( newx ) ) x = newx; else x = 1; // Wartość domyślna } void Runner::setY( int newy ) if( isyonscreen( newy ) ) y = newy; else y = 1; // Wartość domyślna } Copyright Roman Simiński Strona : 34

35 Na zakończenie Osobny wykład Dziedziczenie (ang inheritance) Polimorfizm (ang polymorphism) Osobny wykład Copyright Roman Simiński Strona : 35

Programowanie obiektowe w języku C++

Programowanie obiektowe w języku C++ Programowanie obiektowe w języku C++ Roman Simiński romansiminski@usedupl wwwsiminskionlinepl Koncepcja programowania obiektowego Programowanie obiektowe trochę historii Programowanie obiektowe nie jest

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Podstawy programowania w języku C i C++

Podstawy programowania w języku C i C++ Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja

Bardziej szczegółowo

Wprowadzenie do programowanie obiektowego w języku C++

Wprowadzenie do programowanie obiektowego w języku C++ Wprowadzenie do programowanie obiektowego w języku C++ Część czwarta Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Technologie obiektowe

Technologie obiektowe WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

class Student Deklaracja klasy Osoba: Deklaracja klasy Student: Osoba Student Będziemy mieli 2 klasy: Osoba, dla której zapamiętamy dane takie jak: imie, nazwisko i wiek Oraz klasę Student, w której będziemy też dodatkowo pamiętać kierunek studiów. Deklaracja klasy

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie

Bardziej szczegółowo

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,

Bardziej szczegółowo

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Programowanie obiektowe, wykład nr 6. Klasy i obiekty Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część ósma Zmienne wskaźnikowe koncepcja, podstawowe zastosowania Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski

Bardziej szczegółowo

Wprowadzenie do programowanie obiektowego w języku C++

Wprowadzenie do programowanie obiektowego w języku C++ Wprowadzenie do programowanie obiektowego w języku C++ Część trzecia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo

Do czego służą klasy?

Do czego służą klasy? KLASY Dorota Pylak 2 Do czego służą klasy? W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można wykonywać

Bardziej szczegółowo

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;

Bardziej szczegółowo

Wstęp do programowania obiektowego. Wykład 2

Wstęp do programowania obiektowego. Wykład 2 Wstęp do programowania obiektowego Wykład 2 1 CECHY I KONCEPCJA PROGRAMOWANIA OBIEKTOWEGO 2 Cechy programowania obiektowego Dla wielu problemów podejście obiektowe jest zgodne z rzeczywistością (łatwe

Bardziej szczegółowo

Problem Próby rozwiązania Maszyna stanów Inne zastosowania Podsumowanie. Maszyny stanów. Programowanie gier bez Unity, cz. 3.

Problem Próby rozwiązania Maszyna stanów Inne zastosowania Podsumowanie. Maszyny stanów. Programowanie gier bez Unity, cz. 3. Maszyny stanów Programowanie gier bez Unity, cz. 3 Piotr Korgul Koło Naukowe Twórców Gier Polygon 3 grudnia 2014 r. Cykl Programowanie gier bez Unity 1 Jak zorganizować prace nad grą? 2 Jak działa gra?

Bardziej szczegółowo

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Projektowanie obiektowe. Roman Simiński  Wzorce projektowe Wybrane wzorce strukturalne Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ Programowanie w języku C++ Część dziewiąta Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

Programowanie obiektowe w języku C++

Programowanie obiektowe w języku C++ Programowanie obiektowe w języku C++ Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Klasy i obiekty pierwsze kroki Problem Przewidywane jest napisanie obiektowej wersji programu, realizującego

Bardziej szczegółowo

Wprowadzenie do obiektowości

Wprowadzenie do obiektowości Wprowadzenie do obiektowości Obiekt jest abstrakcją pewnego konkretnego bytu ze świata rzeczywistego, reprezentujący rzecz (obiekt fizyczny), pojęcie (obiekt konceptualny) lub pewny byt programistyczny

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Metodyki programowania. Roman Simiński programowanie.siminskionline.pl. Wprowadzenie do podejścia zwinnego

Metodyki programowania. Roman Simiński programowanie.siminskionline.pl. Wprowadzenie do podejścia zwinnego Metodyki programowania Roman Simiński roman.siminski@us.edu.pl programowanie.siminskionline.pl Wprowadzenie do podejścia zwinnego Trochę wprowadzenia... Kaskadowy model procesu wytwarzania oprogramowania

Bardziej szczegółowo

Mechanizm dziedziczenia

Mechanizm dziedziczenia Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

Bardziej szczegółowo

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium: Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.

Bardziej szczegółowo

KLASY cz.1. Dorota Pylak

KLASY cz.1. Dorota Pylak KLASY cz.1 Dorota Pylak Do czego służą klasy? 2 W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można

Bardziej szczegółowo

Materiały do zajęć VII

Materiały do zajęć VII Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja

Bardziej szczegółowo

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy 2.4 Dziedziczenie Poprzednie dwa rozdziały które dotyczyły zagadnienia automatów komórkowych na przykładach programów w C++. Mogłyby one sugerować że niekoniecznie trzeba programować obiektowo aby napisać

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część ósma Tablice znaków i przetwarzanie napisów Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

Wstęp do Programowania 2

Wstęp do Programowania 2 Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 5 W programowaniu obiektowym programista koncentruje się na obiektach. Zadaje sobie pytania typu:

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Mechanizm dziedziczenia

Mechanizm dziedziczenia Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia

Bardziej szczegółowo

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/ Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.

Bardziej szczegółowo

Do czego służą klasy?

Do czego służą klasy? KLASY Dorota Pylak 2 Do czego służą klasy? W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można wykonywać

Bardziej szczegółowo

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY Różne właściwości Funkcje tak samo jak zmienne mają swoje miejsce w pamięci, gdzie są zapisane. Można więc uzyskać ich adres. Podobnie jak adres tablicy jest zwracany przez jej nazwę, podaną bez nawiasu

Bardziej szczegółowo

Klasy i obiekty. Programowanie zorientowane obiektowo. Case study: Filmoteka Case study: Klasa Akademik

Klasy i obiekty. Programowanie zorientowane obiektowo. Case study: Filmoteka Case study: Klasa Akademik Klasy i obiekty. Programowanie zorientowane obiektowo. Case study: Filmoteka Case study: Klasa Akademik Dlaczego obiekty Załóżmy, że mamy napisać program o następującej specyfikacji: 1. Program wyświetla

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki zaprojektowany jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych jest to język pozwalający na programowanie zarówno proceduralne

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Klasy abstrakcyjne, interfejsy i polimorfizm

Klasy abstrakcyjne, interfejsy i polimorfizm Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Zaawansowane programowanie w języku C++ Klasy w C++

Zaawansowane programowanie w języku C++ Klasy w C++ Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń

Bardziej szczegółowo

Definiowanie własnych klas

Definiowanie własnych klas Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:

Bardziej szczegółowo

Ćwiczenia podstawowe, zestaw 5, część 1

Ćwiczenia podstawowe, zestaw 5, część 1 Ćwiczenia podstawowe, zestaw 5, część 1 1 Napisz zestaw funkcji identyfikujących rodzaj znaku Należy napisać funkcje, pozwalające na identyfikowanie typu znaku przekazanego parametrem. Załóżmy, że tworzymy

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część trzynasta Tablice struktur, pliki struktur Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo

1 Definiowanie prostych klas

1 Definiowanie prostych klas Ćwiczenie 1 1 Definiowanie prostych klas Ćwiczenie to poświęcone jest poznaniu podstawowych zagadnień związanych z definiowaniem prostych klas. Obejmuje m.in. ćwiczenia pozwalające opanować definiowanie

Bardziej szczegółowo

Deklaracja struktury w C++

Deklaracja struktury w C++ Struktury to złożone typy danych pozwalające przechowywać różne informacje. Za pomocą struktur możliwe jest grupowanie wielu zmiennych o różnych typach w jeden obiekt. Strukturę można nazywać obiektem

Bardziej szczegółowo

Wykład 9 2014-06-20 09:37 PP2_W9

Wykład 9 2014-06-20 09:37 PP2_W9 Wykład 9 Przykłady programów z wykorzystaniem klas - przykład funkcji operatorowych - obiektowa implementacja listy jednokierunkowej kopiowanie obiektów - klasa "latający napis" Pozycjonowanie w plikach

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład: klasa, obiekt, po co używać klas, właściwości, atrybuty, funkcje, zachowania, metody, przykładowe obiekty, definiowanie klasy, obiektu, dostęp do składników klasy, public,

Bardziej szczegółowo

Listy powiązane zorientowane obiektowo

Listy powiązane zorientowane obiektowo Listy powiązane zorientowane obiektowo Aby zilustrować potęgę polimorfizmu, przeanalizujmy zorientowaną obiektowo listę powiązaną. Jak zapewne wiesz, lista powiązana jest strukturą danych, zaprojektowaną

Bardziej szczegółowo

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami

Bardziej szczegółowo

Programowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h

Programowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h Programowanie II Lista 3 Modyfikatory dostępu plik TKLientBanku.h plik z funkcją main Przyjaźń Dziedziczenie Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików

Bardziej szczegółowo

Paweł Kurzawa, Delfina Kongo

Paweł Kurzawa, Delfina Kongo Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management

Bardziej szczegółowo

Każdy z nich posiada swoje parametry. W przypadku silnika może to być moc lub pojemność, w przypadku skrzyni biegów można mówić o skrzyni

Każdy z nich posiada swoje parametry. W przypadku silnika może to być moc lub pojemność, w przypadku skrzyni biegów można mówić o skrzyni Język obiektowy był krokiem ewolucji w programowaniu komputerów. Powstał w wyniku rozwoju języków strukturalnych i zmiany podejścia do problemów informatycznych. Cały otaczający świat składa się z obiektów.

Bardziej szczegółowo

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski INFORMATYKA W ZARZĄDZANIU Wykład VI dr Jan Kazimirski jankazim@mac.edu.pl http://www.mac.edu.pl/jankazim MODELOWANIE SYSTEMÓW UML Literatura Joseph Schmuller UML dla każdego, Helion 2001 Perdita Stevens

Bardziej szczegółowo

Modelowanie obiektowe

Modelowanie obiektowe Modelowanie obiektowe ZPO 2018/2019 Dr inż. W. Cichalewski Materiały wykonane przez W. Tylman Diagramy klas Diagramy klas Zawiera informacje o statycznych związkach między elementami (klasami) Są ściśle

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Podstawy algorytmiki i programowania - wykład 4 C-struktury 1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe

Bardziej szczegółowo

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this Wstęp do programowania obiektowego WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this 1 Nazwa typu Rozmiar Zakres Uwagi bool 1 bit wartości true albo false stdbool.h TYPY ZNAKOWE

Bardziej szczegółowo

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Projektowanie obiektowe

Projektowanie obiektowe Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl programowanie.siminskionline.pl Obiektowość w systemach informatycznych Dlaczego projektowanie jest ważne Fakt 1: Wzrost złożoności oprogramowania

Bardziej szczegółowo

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania Zofia Kruczkiewicz Zakres Funkcje przetwarzające teksty (biblioteka ) - tworzenie własnych

Bardziej szczegółowo

Programowanie, część I

Programowanie, część I 11 marca 2010 Kontakt Wstęp Informacje organizacyjne Materiał na ćwiczenia Plan wykładu http://www.fuw.edu.pl/~rwys/prog rwys@fuw.edu.pl tel. 22 55 32 263 Materiał na ćwiczenia Informacje organizacyjne

Bardziej szczegółowo

Informatyka II. Laboratorium Aplikacja okienkowa

Informatyka II. Laboratorium Aplikacja okienkowa Informatyka II Laboratorium Aplikacja okienkowa Założenia Program będzie obliczał obwód oraz pole trójkąta na podstawie podanych zmiennych. Użytkownik będzie poproszony o podanie długości boków trójkąta.

Bardziej szczegółowo

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE. C++ - DZIEDZICZENIE Do najważniejszych cech języka C++ należy możliwość wielokrotnego wykorzystywania kodu Prymitywnym, ale skutecznym sposobem jest kompozycja: deklarowanie obiektów wewnątrz innych klas,

Bardziej szczegółowo

Projektowanie obiektowe. Roman Simiński Polimorfizm

Projektowanie obiektowe. Roman Simiński   Polimorfizm Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Polimorfizm Koncepcja polimorfizmu Słowo polimorfizm pochodzi od dwóch greckich słów: poly czyli wiele, morphos czyli

Bardziej szczegółowo

Podstawy Programowania Programowanie Obiektowe

Podstawy Programowania Programowanie Obiektowe Podstawy Programowania Programowanie Obiektowe Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania powtarzające x &

Bardziej szczegółowo

Warunek wielokrotnego wyboru switch... case

Warunek wielokrotnego wyboru switch... case Warunek wielokrotnego wyboru switch... case Działanie instrukcji switch jest zupełnie inne niż w przypadku instrukcji if o czym będziesz mógł się przekonać w niniejszym rozdziale. Różnice pomiędzy instrukcjami

Bardziej szczegółowo

Wprowadzenie do obiektowości

Wprowadzenie do obiektowości Wprowadzenie do obiektowości Obiekt jest abstrakcją pewnego konkretnego bytu ze świata rzeczywistego, reprezentujący rzecz (obiekt fizyczny), pojęcie (obiekt konceptualny) lub pewny byt programistyczny

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

Podstawy Języka Java

Podstawy Języka Java Podstawy Języka Java Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących

Bardziej szczegółowo

XII. Warunek wielokrotnego wyboru switch... case

XII. Warunek wielokrotnego wyboru switch... case XII. Warunek wielokrotnego wyboru switch... case 12.1. Gdy mamy więcej niŝ dwie moŝliwości Do tej pory poznaliśmy warunek if... else... Po co nam kolejny? Trudno powiedzieć, ale na pewno nie po to, Ŝeby

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego: Typy klasowe (klasy) 1. Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która definiuje programy za pomocą obiektów

Bardziej szczegółowo

kodowanienaekranie.pl

kodowanienaekranie.pl Temat: Naucz się tekstowego języka Python z Codey Rocky - część 1 Zdarzenia kl7-8 Szkoła Podstawowa Przedmiot: informatyka Autor: Sylwester Zasoński Czas trwania: 1h lekcyjna Cele ogólne: Rozwijanie kompetencji

Bardziej szczegółowo