Temat: Podstawy języka Object Pascal

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

Download "Temat: Podstawy języka Object Pascal"

Transkrypt

1 Opracował: mgr inŝ. Zbigniew JANIK Strona 1/8 Temat: Podstawy języka Object Pascal Zakres tematyki: Zasięg deklaracji Moduły Schematyczna postać modułu Object Pascala Programowanie zorientowane obiektowo (OOP) Klasy Typy metod Zasięg deklaracji Zasięg deklaracji jest pojęciem związanym z obowiązywaniem poszczególnych deklaracji w poszczególnych fragmentach programu. I tak, zmienne globalne, deklarowane w programie głównym ( projekcie ) widoczne są w całym programie, podczas gdy zmienne lokalne w procedurze nie są widoczne na zewnątrz niej. Oto prosty przykład: Na uwagę zasługuje tutaj zmienna o identyfikatorze R: wewnątrz procedury oznacza ona jej zmienną lokalną, na zewnątrz zaś zmienną globalną; ta ostatnia jest w ogóle niedostępna w treści procedury, gdyŝ jest przesłonięta (tak to się formalnie nazywa) przez inną zmienną o tym samym identyfikatorze.

2 Opracował: mgr inŝ. Zbigniew JANIK Strona 2/8 Moduły Moduły (ang. units) stanowią podstawowe jednostki programu, grupujące deklaracje oraz procedury i funkcje, osiągalne z programu głównego, a takŝe nawzajem pomiędzy modułami. KaŜdy moduł składa się, obowiązkowo z następujących elementów: Dyrektywy UNIT, Części publicznej, Części prywatnej, ponadto, w module mogą opcjonalnie wystąpić następujące elementy: Część inicjacyjna, Część kończąca. Schematyczna postać modułu Object Pascala Unit nazwa_modułu; // nagłówek modułu Interface // nagłówek części publicznej Uses Nazwa_modułu_1,..., nazwa_modułu_n; Const Nazwa_zmiennej = wyraŝenie; Type Nazwa_typu = definicja_typu; Var Nazwa_zmiennej : określenie_typu; { w części publicznej znajdują się jedynie nagłówki procedur i funkcji. } procedure proc1; function func1: nazwa_typu; implementation // nagłówek części prywatnej Uses Nazwa_modułu_1,..., nazwa_modułu_n; Const Nazwa_zmiennej = wyraŝenie; Type Nazwa_typu = definicja_typu; Var Nazwa_zmiennej : określenie_typu; procedure proc1; blok procedury; function func1: nazwa_typu; blok funkcji; initialization // nagłówek sekcji inicjacyjnej instrukcje; sekcja nieobowiązkowa { powyŝsze instrukcje wykonywane są jednokrotnie, przed rozpoczęciem programu głównego. } finalization sekcja nieobowiązkowa

3 Opracował: mgr inŝ. Zbigniew JANIK Strona 3/8 instrukcje; { powyŝsze instrukcje wykonywane są jednokrotnie, przed rozpoczęciem programu głównego. } end. // znacznik końca modułu Dyrektywa UNIT Stanowi ona pierwszą linię modułu i zawiera jego nazwę poprzedzoną słowem UNIT. Nazwa musi być toŝsama z nazwą pliku, w którym się on znajduje. Np: moduł o nazwie MIASTA misi znajdować się w pliku MIASTA.PAS. Część publiczna interface Część publiczna modułu, rozpoczyna się słowem kluczowym interface. Zawiera definicje tych stałych, typów i zmiennych oraz nagłówki tych procedur i funkcji, które jako globalne obowiązywać mają w całym module oraz mają być dostępne dla innych modułów, w szczególności dla programu głównego. W odniesieniu do procedur i funkcji, część publiczna zawiera jedynie ich nagłówki (zapowiedzi), gdyŝ tylko one istotne są dla reszty programu. Szczegółowe definicje (procedur i funkcji znajdują się w części prywatnej modułu. JeŜeli część publiczna modułu odwołuje się do innych modułów, lista tych ostatnich powinna znaleźć się w dyrektywie uses, występującej bezpośrednio po słowie interface. Ogranicznikiem części publicznej modułu jest słowo kluczowe implementation, rozpoczynające część prywatną. Część prywatna implementation Ta część modułu, niewidoczna dla pozostałych modułów, rozpoczyna się od słowa kluczowego implementation i zawiera definicje tych elementów modułu, które mają dla niego znaczenie lokalne. Znajdują się tutaj m.in. kompletne definicje procedur i funkcji, których nagłówki występują w części publicznej. Stałe, typy, zmienne i etykiety deklarowane poza blokami procedur i funkcji dostępne są dla całej części prywatnej modułu mają w niej obrębie znaczenie globalne. Wszystkie moduły, do których odwołuje się część prywatna modułu, powinny wystąpić na liście dyrektywy uses znajdującej się bezpośrednio po słowie kluczowym implementation. Kolejność definiowania poszczególnych elementów części prywatnej zaleŝy wyłącznie od jej specyfiki; w szczególności procedury i funkcje anonsowane w części publicznej mogą być definiowane w dowolnej kolejności. Ogranicznikiem części prywatnej jest jedna z dyrektyw initialization, finalization lub end. (z kropką). Część inicjacyjna initialization Jest to nieobowiązkowa część modułu. Rozpoczyna się od dyrektywy initialization, a kończy dyrektywą end. kończącą równocześnie cały moduł, bądź teŝ słowem finalization. Zawarte w niej instrukcje wykonywane są jednokrotnie, przed rozpoczęciem programu głównego. Kolejność wykonywania części inicjacyjnych poszczególnych modułów zaleŝy od ich wzajemnej zaleŝności wynikającej z zawartości dyrektyw uses w częściach publicznych.

4 Opracował: mgr inŝ. Zbigniew JANIK Strona 4/8 Część kończąca finalization Ta sekcja modułu równieŝ jest nieobowiązkowa, wystąpić moŝe jednak tylko z sekcją inicjacyjną części modułu. Rozpoczyna się od dyrektywy finalization i kończy dyrektywą end. kończącą zarazem cały moduł. Zawarte w niej instrukcje wykonywane są jednokrotnie, po zakończeniu pracy programu głównego, a ich celem jest z reguły zwolnienie zasobów, zamknięcie plików i wykonanie ew. innych czynności kończących pracę modułu. Kolejność wykonywania części kończących poszczególnych modułów jest odwrotna do kolejności wykonywania części inicjacyjnych. JeŜeli część inicjacyjna danego modułu nie zostanie rozpoczęta na skutek przedwczesnego zakończenia programu, nie zostanie równieŝ wykonana jego część kończąca. Programowanie zorientowane obiektowo Programowanie zorientowane obiektowo (ang. OOP Object Oriented Programming) zyskało sobie w ostatnim dziesięcioleciu rangę niemal kultową. Nic w tym dziwnego po językach algorytmicznych, a następnie programowaniu strukturalnym jest to następna idea, której skutki w rewolucjonizowaniu procesu projektowania oraz programowania są widoczne aŝ nazbyt dobrze. Kiedy Niklas Wirth ponad 20 lat temu przedstawił projekt języka programowania o nazwie Pascal, uderzająca okazała się elegancja i oszczędność zastosowanych środków językowych. Starannie dobrane elementy składniowe, niewielki zasób słów kluczowych, operatorów i standardowych identyfikatorów to wszystko z jednej strony wymuszało pewną dyscyplinę i elegancję programowania, z drugiej stanowiło ograniczenie na rozwiązanie tego samego na przysłowiowy tysiąc sposobów. Nie zabrakło oczywiście i dzisiaj nie brakuje krytyków języka Pascal, piętnujących w nim brak wielu konstrukcji i mechanizmów, obecnych w innych językach. Nie sposób jednak przecenić w informatyce idei programowania strukturalnego, której Pascal był pierwszym uosobieniem: dwa podstawowe elementy programu kod i dane rozpatrywane są jako byty o określonej strukturze, przy wielorakich wzajemnych analogiach. Kiedy prześledzić ponad dwudziestoletnią ewolucję Pascala nie sposób oprzeć się wraŝeniu, Ŝe z pierwotnej postaci, stanowiącej dzisiaj przede wszystkim akademicki wzór elegancji, język ten stał się juŝ dzisiaj szeroko zaakceptowanym, pełnoprawnym narzędziem do tworzenia profesjonalnych aplikacji ogromny sukces najpierw Turbo Pascala, a obecnie Delphi jest tego wyraźnym potwierdzeniem. Kluczowe znaczenie ma tutaj fakt, iŝ wszelkie uŝyteczne rozszerzenia jeŝyka nie zachwiały jak dotąd tym, co stanowiło od początku fundament języka mianowicie jego prostotą i elegancją. Pewnym niedostatkiem idei programowania strukturalnego jest traktowanie kodu i danych programu w swoiście globalny sposób: przy szczegółowym podejściu strukturalnym do obydwu tych aspektów programu, programowanie strukturalne nie przywiązuje zbyt duŝej uwagi do ich wzajemnej współpracy. Zmianę w tym względzie przyniosła dopiero kolejna rewolucyjna idea programowania obiektowego. Zgodnie z nią program jawi się jako współistnienie obiektów, z których kaŝdy stanowi ściśle dobrany zestaw współpracujących ze sobą danych i kodu. Stanowiąc zamkniętą, funkcjonalną całość, obiekty równieŝ mogą stanowić poziom wymiany rozwiązań między aplikacjami: najbardziej koronnym tego przykładem są komponenty Delphi.

5 Opracował: mgr inŝ. Zbigniew JANIK Strona 5/8 Będąc świadomym ogromnej wiedzy między Object Pascalem a jego pierwowzorem sprzed ponad 20 lat, trudno po raz kolejny oprzeć się wraŝeniu, Ŝe Pascal nie przestał być Pascalem. Klasyczna, modularna forma wymiany informacji bynajmniej jednak z Object Pascala nie zniknęła. Lazarus zawiera szereg modułów, noszących wspólną nazwę biblioteki uruchomieniowej (ang. RTL Runtime Library), zawierających szereg uŝytecznych podprogramów obejmujących róŝnorodne aspekty programowania. Filozofię obiektów określają cztery fundamentalne pojęcia: Dziedziczenie Polimorfizm Enkapsulacja Obiektowość jako pierwotna metoda programowania Dziedziczenie. Tworząc złoŝone aplikacje, nie sposób zauwaŝyć podobieństw między poszczególnymi fragmentami danych i kodu. Stąd pomoc, aby przy definiowaniu nowych typów obiektowych nie zaczynać pracy od początku, lecz wykorzystać cechy obiektów juŝ istniejących. Na bazie istniejących typów musi dać się tworzyć nowe typy; musi się to odbywać na drodze dziedziczenia atrybutów i metod. Polimorfizm oznacza dosłownie występowanie w wielu postaciach. W programowaniu obiektowym termin ten określa zdolność róŝnych obiektów do odpowiadania na ten sam komunikat w róŝny sposób. Domyślnie metody w Delphi są statyczne. Oznacza to, Ŝe odwołanie do danej metody jest równoznaczne z wywołaniem ściśle określonej procedury. Polimorfizm umoŝliwia dynamiczne wywiązanie metod z procedurami w trakcie wykonywania programu. Ta sama metoda moŝe być dowiązana do róŝnych procedur, zaleŝnie od obiektu. Enkapsulacja polega z ścisłym powiązaniu kodu oraz danych słuŝących temu samemu celowi, poprzez zamknięcie ich w ramach jednego bytu typu obiektowego. Inaczej mówiąc; dane i kod programu powinno się umieszczać w pojedynczych obiektach. Obiekt musi zatem zawierać elementy danych (podobnie jak rekord) i procedury (zwane metodami). Procedury zawarte w obiekcie muszą mieć automatycznie zapewniony dostęp do danych obiektu. Obiektowość jako pierwotna metoda programowania Mechanizmy programowania obiektowego powinny być dla danego narzędzia pierwotną metodą tworzenia programu. Nie mogą być uzupełnieniem, dodanym z czasem do istniejącego juŝ produktu. Będąc podstawową metodą tworzenia kodu mechanizmy programowania obiektowego powinny zapewniać wydajność wystarczającą w praktycznych zastosowaniach; w przeciwnym razie naleŝy poddać w wątpliwość jakość narzędzia, którego pierwotna i podstawowa metoda tworzenia programu nie oferuje niezbędnej wydajności.

6 Opracował: mgr inŝ. Zbigniew JANIK Strona 6/8 Klasy Podstawowym elementem Object Pascala jest typ obiektowy, nazywany obecnie klasą (ang. classes). Konkretny egzemplarz klasy nosi nazwę obiektu (ang. object). Podstawowymi trzema elementami, z których składa się klasa w Object Pascalu są: Pola (ang. Fields) stanowi daną składową obiektu, na wzór pola rekordu z tą róŝnicą, Ŝe klasa nie moŝe zawierać części wariantowej; Metody (ang. Methods) procedury i funkcje słuŝące do wykonania operacji na polach klasy; Właściwości (ang. Properties) wykorzystywane jak pola, lecz zrealizowane w oparciu o metody. Stanowi połączenie koncepcji pola i metody i określa sposób dostępu do pól metod obiektu. Operowanie właściwościami w miejsce operowania polami i metodami pozwala uniezaleŝnić sposób korzystania z obiektu od jego szczegółów implementacyjnych. Ponadto, w przeciwieństwie do tradycyjnych typów języka, klasa moŝe być definiowana wyłącznie na poziomie globalnym modułu lub programu (nie wewnątrz procedury czy funkcji). Nie jest takŝe moŝliwe zdefiniowanie klasy przy okazji deklarowania zmiennej w dyrektywie var klasa musi być zdefiniowana jawnie jako typ. PoniŜej przedstawiono typową postać modułu ze zdefiniowaną klasą TForm1. pole unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type Klasa przodka TForm1 = class(tform) Button1: TButton; Label1: TLabel; metoda MainMenu1: TMainMenu; procedure Button1Click(Sender: TObject); private { Private declarations } sum : integer; function Suma(var X:wektor):integer; public { Public declarations } end; var Form1: TForm1; implementation Definicja klasy rozpoczyna się do słowa kluczowego class, po którym wymienione są poszczególne jej elementy (ang. members). Podstawowym mechanizmem związanym z programowaniem obiektowym jest zjawisko dziedziczenia. Polega ono na tym, Ŝe obiekt pochodny dziedziczy po swym obiekcie bazowym wszystkie jego elementy pola metody i właściwości, nie ma zatem potrzeby

7 Opracował: mgr inŝ. Zbigniew JANIK Strona 7/8 ponownego ich definiowania. Nie ma natomiast moŝliwości wyeliminowania któregokolwiek z elementów klasy bazowej. Definicja klasy zazwyczaj zawarta jest w module Object Pascala: definicje pól, właściwości i nagłówki metod, składające się na definicję klasy umieszczane są z reguły w części publicznej modułu, natomiast kompletne definicje metod znajdują się w części prywatnej. W przeciwieństwie do tradycyjnych typów języka moŝliwe jest dodatkowe określenie stopnia globalności elementów klasy za pomocą dyrektyw private, protected (wym: protektyd), public i published. Wszystkie elementy klasy widoczne są bez ograniczenia w module, w którym klasa została zdefiniowana. Znaczenie powyŝszych dyrektyw jest następujące: Private dyrektywa ta powoduje najwyŝszy stopień ograniczenia globalności: elementy klasy znajdujące się w zasięgu tej dyrektywy widoczne są jedynie w ramach modułu, w którym klasa została zdefiniowana i kompletnie nie widoczne dla innych modułów. Protected elementy znajdujące się w zakresie tej dyrektywy ( chronione ) dostępne są w innych modułach jedynie dla potrzeb definiowania klas pochodnych i mogą wystąpić jedynie w ramach definicji metod i właściwości tych ostatnich. Pod kaŝdym innym względem elementy te traktowane są tak, jak elementy prywatne. UmoŜliwia to definiowanie klasy pochodnej w module innym niŝ ten, w którym zdefiniowano klasę bazową. Public ta dyrektywa oznacz brak ograniczeń na globalność elementów znajdujących się w jej zakresie. Published umieszczenie elementów klasy w zasięgu tej dyrektywy powoduje umieszczenie informacji o nich w ramach specjalnej struktury zawierającej informacje i klasie i dostępnej w czasie wykonania programu, same zaś elementy nazywane są opublikowanymi. Wszystkie właściwości i zdarzenia widoczne w zakresie Inspektora Obiektu naleŝą do elementów tej kategorii. Z dyrektywą published wiąŝą się pewne ograniczenia. (Patrz literatura.) Te elementy, które nie znajdują się w zasięgu Ŝadnej z w/w dyrektyw, traktowane są tak, jak elementy opublikowane (published). Są one jednak traktowane przez Delphi w specyficzny sposób, dlatego teŝ wskazane jest zawsze jawne deklarowanie widoczności elementów klasy. Typy metod W Object Pascalu istnieją cztery typy metod obiektowych o statyczne o wirtualne o dynamiczne o zarządzające komunikatami A oto przykład zebrania metod wszystkich czterech kategorii w ramach jednego typu: TOop = class procedure Statyczna; procedure Wirtualna; virtual; procedure Dynamiczna; dynamic; procedure Komunikacyjna(var Z: TMessage); message wm_somemessage; end;

8 Opracował: mgr inŝ. Zbigniew JANIK Strona 8/8 Metody statyczne Jest to domyślna postać metody obiektowej. Jej adres znany jest juŝ w czasie kompilacji, a jej wykonanie bardzo efektywne. Procedura statyczna nie daje jednak moŝliwości wykorzystania polimorfizmu. Metody wirtualne Zjawisko dziedziczenia wiąŝe się z moŝliwością predefiniowania (ang. Overriding) metod obiektu. Oznacza to, Ŝe metoda o danej nazwie moŝe mieć zupełnie róŝne działanie dla typu macierzystego i typu pochodnego. Innymi słowy, kompilator, znając nazwę metody nie potrafi określić jej konkretnego adresu, nie znając konkretnego egzemplarza (a właściwie jego typu) na rzecz którego jest ona aktywowana. Zjawisko róŝnego zachowania metod o tej samej nazwie dla róŝnych typów w całym poddrzewie typów pochodnych nosi nazwę polimorfizmu metoda o danej nazwie ma jak gdyby wiele twarzy. Do realizacji polimorfizmu Object Pascal utrzymuje struktury zwane tablicami VMT (ang. Virtual Metod Tables), po jednej dla kaŝdego typu. PoniewaŜ dla kaŝdego typu tablica VMT zawiera adresy wszystkich metod, niezaleŝnie od tego czy metody są przedefiniowane w stosunku do typu macierzystego, metody wirtualne powodują pewien stopień obciąŝalności pamięci, lecz za to są stosunkowo szybkie. Metody dynamiczne Koncepcyjnie metody dynamiczne nie róŝnią się od metod wirtualnych, są jednak w mniejszym stopniu pamięciochłonne. Dla kaŝdego typu posiadającego metody dynamiczne kompilator utrzymuje strukturę zwaną tablicą DMT (ang. Dynamic Metod Table); tablica ta nie zawiera jednak adresów wszystkich metod typu, lecz tylko tych, które w stosunku do typu macierzystego zostały predefiniowane. Skutkuje to mniejszym obciąŝeniem pamięci, lecz znacznie mniej efektywnym wykonaniem, gdyŝ proces poszukiwania właściwego adresu jest bardziej złoŝony niŝ w przypadku tablic VMT. Metody zarządzające komunikatami Metody tej kategorii stanowią ukłon w stronę klasycznego programowania w Windows i słuŝą do niskopoziomowego zarządzania wybranymi kategoriami komunikatów (ang. messages).

Zapis programu z wykorzystaniem modułu (Podstawy Delphi 2.1, 2.2, 2.3 str11 )

Zapis programu z wykorzystaniem modułu (Podstawy Delphi 2.1, 2.2, 2.3 str11 ) Przypomnienie dziedziczenie obiektów Przykład (p6) Zapis programu z wykorzystaniem modułu (Podstawy Delphi 2.1, 2.2, 2.3 str11 ) Przykład (p7) przypomnienie zapis z wykorzystaniem rekordu W pliku projektu

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

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

Dziedziczenie jednobazowe, poliformizm

Dziedziczenie jednobazowe, poliformizm Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie

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

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk Nazwa implementacji: Kółko i krzyżyk w Lazarusie Autor: Piotr Fiorek Andrzej Stefaniuk Opis implementacji: Implementacja prezentuje środowisko Lazarus oraz prosty program w języku FreePascal. Na początku

Bardziej szczegółowo

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

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

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie

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

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ 1. Na dysku STUDENT we własnym folderze utwórz podfolder o nazwie: WarMax. 2. Uruchom program Delphi. 3. Zapamiętaj w folderze WarMax poszczególne pliki tworzące

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

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

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem. Podstawy programowania Wykład PASCAL Wstęp do programowania obiektowego 1 Programowanie obiektowe - definicja Programowanie obiektowe paradygmat programowania, w którym programy definiuje się za pomocą

Bardziej szczegółowo

Podstawy Programowania semestr drugi. Wykład czternasty

Podstawy Programowania semestr drugi. Wykład czternasty Wykład czternasty 1. Polimorfizm Ostatni wykład zakończyliśmy stwierdzeniem, że możemy obiektowi dowolnej klasy przypisa ć obiekt klasy dziedziczącej po tej klasie. Przypisanie takie obejmuje jednak jedynie

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

Podstawy Programowania 2

Podstawy Programowania 2 Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu

Bardziej szczegółowo

Delphi podstawy programowania. Środowisko Delphi

Delphi podstawy programowania. Środowisko Delphi Delphi podstawy programowania Środowisko Delphi Olsztyn 2004 Delphi Programowanie obiektowe - (object-oriented programming) jest to metodologia tworzeniu programów komputerowych definiująca je jako zbiór

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

Wprowadzenie do systemu Delphi

Wprowadzenie do systemu Delphi 50 Rozdział 4 Wprowadzenie do systemu Delphi W niniejszym rozdziale zilustrujemy na prostych przykładach proces programowania wizualno-obiektowego w systemie Delphi. 4.1 Znajdowanie elementu maksymalnego

Bardziej szczegółowo

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 Uwaga: DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 1. Zostały pominięte diagramy: CYFRA, CYFRA SZESNASTKOWA, ZNAK i LITERA. Nie została uwzględniona możliwość posługiwania się komentarzami. 2. Brakuje

Bardziej szczegółowo

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas

Bardziej szczegółowo

Wykład 9: Polimorfizm i klasy wirtualne

Wykład 9: Polimorfizm i klasy wirtualne Programowanie obiektowe Wykład 9: i klasy wirtualne 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD Programowanie obiektowe i metody wirtualne 2 W programowaniu obiektowym polimorfizm

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

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

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. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 12 Struktury, unie, pola bitowe 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Struktury 2 Struktury Struktury to złożone typy danych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Programowanie zorientowane obiektowo Pojęcie klasy i obiektu Elementy klas: Pola klas (dane), metody (procedury i funkcje) KLASA TO WZORZEC. OBIEKT TO KONKRETNY EGZEMPLARZ Hermetyzacja

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej. Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej  Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium

Bardziej szczegółowo

Tworzenie własnych komponentów

Tworzenie własnych komponentów Tworzenie własnych komponentów 1. Tworzenie nowego komponentu W tym celu należy wykorzystać menu Component. Interesujące są dwie opcje menu New Component i Install Component. Pierwsze polecenie służy do

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

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

> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki > C++ dziedziczenie Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1432108800 > Dziedziczenie Dziedziczenie C++ dziedziczenie 2 / 13 > Dziedziczenie Dziedziczenie * to

Bardziej szczegółowo

Programowanie 2. Język C++. Wykład 3.

Programowanie 2. Język C++. Wykład 3. 3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane

Bardziej szczegółowo

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Wirtualne destruktory class A int* a; A(int _a) a = new int(_a);} virtual ~A() delete a;} class B: public A double* b;

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

Delphi. Lazarus. Kompilatory Delphi. Linki do stron o Delphi

Delphi. Lazarus. Kompilatory Delphi. Linki do stron o Delphi Lazarus Programowanie w Delphi Delphi Delphi jest to język oparty na Pascal. Twórcą jego jest firma Borland. Pierwotnie nosił nazwę Object Pascal (do 2006). Jest to język prosty i popularny. Wykorzystuje

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Funkcje i procedury Zasięg zmiennych Rekurencja Witold Marańda maranda@dmcs.p.lodz.pl 1 Modularyzacja programu Algorytmy strukturalne moŝna redukować, zastępując złoŝone fragmenty

Bardziej szczegółowo

Ada-95. Dariusz Wawrzyniak

Ada-95. Dariusz Wawrzyniak Część I Wskaźniki Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Wskaźniki

Bardziej szczegółowo

Programowanie 2. Język C++. Wykład 9.

Programowanie 2. Język C++. Wykład 9. 9.1 Ukrywanie metod, metody nadpisane... 1 9.2 Metody wirtualne, wirtualny destruktor... 2 9.3 Metody czysto wirtualne... 6 9.4 Klasy abstrakcyjne... 7 9.5 Wielodziedziczenie... 9 9.1 Ukrywanie metod,

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

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem. Podstawy programowania Wykład PASCAL Zmienne wskaźnikowe i dynamiczne 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje zmiennych Zmienne dzielą się na statyczne i dynamiczne. Zmienna

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

Niniejszy ebook jest własnością prywatną. Został zakupiony legalnie w serwisie Netpress.pl, będącym oficjalnym Partnerem Wydawcy.

Niniejszy ebook jest własnością prywatną. Został zakupiony legalnie w serwisie Netpress.pl, będącym oficjalnym Partnerem Wydawcy. Niniejszy ebook jest własnością prywatną. Został zakupiony legalnie w serwisie Netpress.pl, będącym oficjalnym Partnerem Wydawcy. Niniejsza publikacja, ani żadna jej część, nie może być kopiowana, ani

Bardziej szczegółowo

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

Zmienne i stałe w PHP

Zmienne i stałe w PHP Zmienne i stałe w PHP Zmienne Zmienne to konstrukcje programistyczne, które pozwalają na przechowywanie danych. Każda zmienna posiada swoją nazwę oraz typ. Nazwa to jednoznaczny identyfikator, dzięki któremu

Bardziej szczegółowo

Pola i metody statyczne. Klasy zawierające pola i metody statyczne

Pola i metody statyczne. Klasy zawierające pola i metody statyczne Instrukcja laboratoryjna nr 1 Programowanie w języku C 2 (C++ poziom zaawansowany) Pola i metody statyczne. Klasy zawierające pola i metody statyczne dr inż. Kaczmarek Tomasz mgr inż. Lasota Maciej dr

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

Programowanie RAD Delphi

Programowanie RAD Delphi Programowanie RAD Delphi Dr Sławomir Orłowski Zespół Fizyki Medycznej, Instytut Fizyki, Uniwersytet Mikołaja Kopernika w Toruniu Pokój: 202, tel. 611-32-46, e-mial: bigman@fizyka.umk.pl Delphi zasoby Aplikacje

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 modułowe

Programowanie modułowe Przykład aplikacji bez obsługi zdarzeń Rozmieszczenie na formatce 11 etykiet i komponentu Image. Rozbudowa pliku głównego aplikacji do postaci: program Project1; uses Forms, SysUtils, Unit1 in 'Unit1.pas'

Bardziej szczegółowo

10. Programowanie obiektowe w PHP5

10. Programowanie obiektowe w PHP5 Ogólnie definicja klasy wygląda jak w C++. Oczywiście elementy składowe klasy są zmiennymi PHP, stąd nieśmiertelne $. Warto zauważyć, że mogą one mieć wartość HHH mgr inż. Grzegorz Kraszewski TECHNOLOGIE

Bardziej szczegółowo

Programowanie obiektowe w Pascalu

Programowanie obiektowe w Pascalu Programowanie obiektowe w Pascalu Po co obiekty? Przykład Obliczenie obwodu trójkąta Sposób tradycyjny: var a,b,c: real; function obwod: real; obwod:=a+b+c; readln(a, b, c); writeln( Obwod=, obwod);...

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

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

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

Język C++ Programowanie obiektowe

Język C++ Programowanie obiektowe Język C++ Programowanie obiektowe Cechy programowania obiektowego abstrakcyjne typy danych hermetyczność obiektów (kapsułkowanie) dziedziczenie polimorfizm Programowanie proceduralne vs. programowanie

Bardziej szczegółowo

OBIEKTY PHP. G. Panuś

OBIEKTY PHP. G. Panuś OBIEKTY PHP G. Panuś Podstawowym elementem programowania obiektowego jest klasa Klasa zawiera Zmienne właściwości Klasa Funkcje metody Definiowanie klasy Do definiowania klasy służy polecenie class class

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 8 Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick

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

int suma; pralka czerwona; // definicja egzemplarza obiektu pralka * wskaŝ; // definicja wskaźnika pralka & ruda = czerwona; // definicja referencji

int suma; pralka czerwona; // definicja egzemplarza obiektu pralka * wskaŝ; // definicja wskaźnika pralka & ruda = czerwona; // definicja referencji Pojęcie klasy Typ zmiennych informuje: o ich rozmiarze w pamięci, jaki rodzaj informacji mogą zawierać, jakie działania moŝna na nich wykonywać. W C++ dane mogą zostać powiązane z funkcjami - znaczy to,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

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

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

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

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

PROE wykład 4 pozostałe operatory, forward declaration, dziedziczenie. dr inż. Jacek Naruniec

PROE wykład 4 pozostałe operatory, forward declaration, dziedziczenie. dr inż. Jacek Naruniec PROE wykład 4 pozostałe operatory, forward declaration, dziedziczenie dr inż. Jacek Naruniec Kolokwium wykładowe Pierwsze kolokwium 6 kwietnia Drugie kolokwium 1 czerwca Kolokwium poprawkowe 8 czerwca

Bardziej szczegółowo

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach. Nazwa implementacji: Gra w życie Autor: Piotr Fiorek Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach. Zaprojektuj prostą grę, której celem

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

referencje Wykład 2. Programowanie (język C++) Referencje (1) int Num = 50; zdefiniowano zmienną Num (typu int) nadając jej wartość początkową 50.

referencje Wykład 2. Programowanie (język C++) Referencje (1) int Num = 50; zdefiniowano zmienną Num (typu int) nadając jej wartość początkową 50. Programowanie (język C++) referencje Wykład 2. Referencje (1) Referencja (odnośnik) jest zmienną identyfikującą inną zmienną. Wykonanie operacji na referencji ma taki sam skutek, jak wykonanie tejŝe operacji

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

Zaawansowane programowanie w języku C++ Programowanie obiektowe

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

Bardziej szczegółowo

Wprowadzenie do systemów informacyjnych

Wprowadzenie do systemów informacyjnych Uwagi ogólne: Wprowadzenie do systemów informacyjnych Projektowanie obiektowe Obiektowość jest nową ideologią, która zmienia myślenie realizatorów SI z zorientowanego na maszynę na zorientowane na człowieka.

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

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe Podstawy programowania Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe 1 Podstawy programowania Część I Łańcuchy znaków 2 I. Zmienne łańcuchowe Klasyfikacja zmiennych statycznych

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

EKSPLOATACJA SYSTEMÓW TECHNICZNYCH - LAB. Wprowadzenie do zajęć

EKSPLOATACJA SYSTEMÓW TECHNICZNYCH - LAB. Wprowadzenie do zajęć Politechnika Śląska Wydział Organizacji i Zarządzania Katedra Podstaw Systemów Technicznych EKSPLOATACJA SYSTEMÓW TECHNICZNYCH - LAB. Ćwiczenie 1 Wprowadzenie do zajęć Plan ćwiczenia 1. Zapoznanie się

Bardziej szczegółowo

1. Programowanie obiektowe. Wstęp.

1. Programowanie obiektowe. Wstęp. 1. Programowanie obiektowe. Wstęp. Literatura: Neil J. Rubenking, Understending and Programming in Object-Oriented-Pascal, PC Magazine, February 27, 1990, p. 263. Turbo Pascal w wersji 5.5 i wyższych dopuszcza

Bardziej szczegółowo

Wykład 5 Okna MDI i SDI, dziedziczenie

Wykład 5 Okna MDI i SDI, dziedziczenie Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie

Bardziej szczegółowo

Metody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/

Bardziej szczegółowo

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiety Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiet składa się ze: specyfikacji (interfejsu) i ciała (implementacji). W specyfikacji mieszczą

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej  Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium

Bardziej szczegółowo

Wykład VI PASCAL procedury i funkcje przekazywanie parametrów,

Wykład VI PASCAL procedury i funkcje przekazywanie parametrów, Podstawy programowania Wykład VI PASCAL procedury i funkcje przekazywanie parametrów, 1 I. Procedury i funkcje Zakres widoczności zmiennych i tab_los i, suma 2 I. Procedury i funkcje Procedury z parametrami

Bardziej szczegółowo

Delphi Laboratorium 3

Delphi Laboratorium 3 Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,

Bardziej szczegółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

Bardziej szczegółowo

Enkapsulacja, dziedziczenie, polimorfizm

Enkapsulacja, dziedziczenie, polimorfizm 17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja

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

Dziedziczenie. Tomasz Borzyszkowski

Dziedziczenie. Tomasz Borzyszkowski Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Rysunek 1: Przykłady graficznej prezentacji klas.

Rysunek 1: Przykłady graficznej prezentacji klas. 4 DIAGRAMY KLAS. 4 Diagramy klas. 4.1 Wprowadzenie. Diagram klas - w ujednoliconym języku modelowania jest to statyczny diagram strukturalny, przedstawiający strukturę systemu w modelach obiektowych przez

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

Zaawansowane programowanie w C++ (PCP) Zaawansowane programowanie w C++ (PCP) Wykład 3 - polimorfizm. dr inż. Robert Nowak - p. 1/14 Powtórzenie Powtórzenie: klasy autonomiczne: konstruktor, konstruktor kopiujacy, operator przypisania, destruktor

Bardziej szczegółowo