Podstawy programowania obiektowego

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

Download "Podstawy programowania obiektowego"

Transkrypt

1 Podstawy programowania obiektowego struktura kasy w Dephi definicja pó i metod konstruktory i destruktory Programowanie obiektowe s.-

2 Najważniejsze pojęcia z wykładu 0 Programowanie sterowane zdarzeniami technika programowania poegająca na wyróżnieniu tzw. zdarzeń zachodzących w środowisku programu i przyporządkowaniu tym zdarzeniom okreśonych sekwencji instrukcji. Programowanie obiektowe programowanie, zazwyczaj w obiektowym języku programowania, które poega na wyodrębnieniu obiektów, ich kas oraz metod. Każdy obiekt traktowany jest jako samodzieny, zamknięty fragment kodu, a funkcjonowanie programu opiera się na komunikacji pomiędzy obiektami. Obiekt abstrakcyjny byt reprezentujący ub opisujący pewną rzecz ub pojęcie obserwowane w modeowanym systemie. Składowe obiektu: atrybuty/własności (nazwane wartości przypisane do obiektu), metody (operacje przypisane do obiektu; operacje, które obiekt potrafi wykonać). Kasa wzorzec okreśający strukturę pewnej grupy obiektów o takiej samej budowie, czyi posiadających atrybuty o takich samych nazwach, metody o takim samym działaniu, itp.; formanie: byt semantyczny rozumiany jako miejsce przechowywania takich cech grupy podobnych obiektów, które są da nich wspóne. Komponent szczegóny przypadek obiektu zaprojektowany jako gotowy do użycia eement apikacji, który można dostosować do własnych potrzeb w czasie projektowania programu. Programowanie obiektowe s.-

3 type <nazwa_kasy> = cass(<nazwa_nadkasy>) private poa i metody prywatne pubic poa i metody pubiczne Składnia definicji kasy w Dephi <nazwa_kasy> jest unikanym identyfikatorem języka Pasca (może składać się z iter afabetu angieskiego, cyfr i znaku podkreśenia); <nazwa_nadkasy> to eement opcjonany, nazwa kasy bazowej, z której dziedziczy definiowana kasa (dziedziczenie zostanie omówione na wykładzie 4). Programowanie obiektowe s.-3

4 Kasy w Dephi Definicja kasy jest równoważna definicji nowego typu danych; Definicja kasy musi wystąpić przed utworzeniem obiektu danej kasy; Składniki zdefiniowane w sekcji private (składniki prywatne), są dostępne tyko wewnątrz kasy, w której zostały zdefiniowane i nie można odwołać się do nich z poziomu innych kas; Składniki zdefiniowane w sekcji pubic (składniki pubiczne) są dostępne zarówno wewnątrz kasy, w której zostały zdefiniowane jak i z każdego innego miejsca kodu, który ma dostęp do danej kasy; Składniki zdefiniowane bez okreśenia specyfikatora dostępu są domyśnie traktowane jako pubiczne; Każdy składnik zdefiniowany wewnątrz kasy musi mieć nazwę unikaną w obrębie danej kasy, różne kasy mogą zawierać składniki o takich samych nazwach. Programowanie obiektowe s.-4

5 Poa kasy Składnia definicji poa: <nazwa_poa>: typ; <nazwa_poa>, <nazwa_poa>: typ; <nazwa_poa> jest unikanym w obrębie kasy identyfikatorem języka Pasca; typ może być dowonym typem standardowym ub zdefiniowanym przez użytkownika (również inną kasą); każdy obiekt danej kasy posiada własną kopię pó i może im nadać indywiduane wartości, inaczej: poa są związane z konkretnym obiektem danej kasy; w każdym punkcie definicji kasy jest możiwy bezpośredni dostęp do wszystkich pó zdefiniowanych w tej kasie (pubicznych i prywatnych); spoza definicji kasy możiwy jest dostęp tyko do pó pubicznych; przyjmując pewne uproszczenie własności komponentów mogą być traktowane jako pubiczne poa kas tych komponentów. Programowanie obiektowe s.-5

6 Metody Metoda procedurana wyodrębniona część kodu kasy, stanowiąca pewną całość o jednoznacznej nazwie i ustaonym sposobie wymiany informacji z pozostałymi częściami programu. Metoda procedurana wykonuje pewną sekwencję operacji, której wynikiem może być wyznaczenie jednej ub wieu wartości (może nie wyznaczać żadnej). Metoda funkcyjna wyodrębniona część kodu kasy, stanowiąca pewną całość o jednoznacznej nazwie i ustaonym sposobie wymiany informacji z pozostałymi częściami programu. Metoda funkcyjna zawsze wyznacza dokładnie jedną wartość, która jest zwracana jako wynik jej działania. Zastosowanie metod metody pubiczne reaizują zadania wynikające z funkcjonaności obiektu, metody prywatne umożiwiają podział dużych agorytmów na mniejsze części, zwiększają czyteność kodu przez oddzieenie i nazwanie operacji koniecznych do zreaizowania dużego agorytmu, pozwaają na zdefiniowanie pomocniczych podprogramów, które mogą być używane wieokrotnie w różnych metodach danej kasy; w Dephi procedury zdarzeń komponentów są definiowane jako metody formuarza, do którego naeży dany komponent. Programowanie obiektowe s.-6

7 Dekaracja metody (prototyp) Stworzenie nowej metody wymaga dekaracji w kodzie kasy (odpowiednio w części private ub pubic) oraz właściwej definicji umieszczonej poza kasą. Składnia dekaracji metody proceduranej: procedure <nazwa_metody>(argumenty_formane); Składnia dekaracji metody funkcyjnej: function <nazwa_metody>(argumenty_formane): typ_wyniku; <nazwa_metody> jest unikanym w obrębie kasy identyfikatorem języka Pasca; typ_wyniku to typ wartości zwracanej przez metodę funkcyjną, może być typem standardowym ub zdefiniowanym przez użytkownika; argumenty_formane są eementem opcjonanym, parametryzują metodę i okreśają sposób jej komunikacji z innymi eementami programu (dane przesyłane do metody i/ub rezutaty wyprowadzane na zewnątrz). Więcej informacji o argumentach metod znajduje się w Dodatku. Programowanie obiektowe s.-7

8 Definicja metody proceduranej procedure <nazwa_kasy>.<nazwa_metody>(arg_formane); definicje i dekaracje okane kod metody definicja metody znajduje się poza kasą; <nazwa_kasy> jest nazwą kasy, do której naeży metoda; nagłówek metody (nazwa, argumenty formane) musi odpowiadać jej dekaracji; definicje i dekaracje okane to dekaracje zmiennych i definicje typów które są dostępne tyko wewnątrz danej metody; kod metody to ciąg instrukcji języka Pasca, który impementuje agorytm reaizowany przez daną metodę. Programowanie obiektowe s.-8

9 Definicja metody funkcyjnej function <nazwa_kasy>.<nazwa_metody>(arg_form): typ_wyniku; definicje i dekaracje okane kod metody Resut := wyrażenie; definicja metody znajduje się poza kasą; <nazwa_kasy> jest nazwą kasy, do której naeży metoda; nagłówek metody (nazwa, argumenty formane) musi odpowiadać jej dekaracji; definicje i dekaracje okane to dekaracje zmiennych i definicje typów które są dostępne tyko wewnątrz danej metody; kod metody to ciąg instrukcji języka Pasca, który impementuje agorytm reaizowany przez daną metodę; Wartość przypisana do Resut okreśa wynik metody funkcyjnej (wartość zwracaną przez metodę). Programowanie obiektowe s.-9

10 definicja kasy formuarza Przykład kasa formuarza (Przykład., wykład 0) type TForm = cass(tform) Labe : TLabe; Edit : TEdit; Button: TButton;... procedure ButtonCick(Sender: TObject); private pubic var Form: TForm; poa kasy (komponenty formuarza) prototyp metody (proc. obsł. zdarzenia) prywatna i pubiczna część kasy dekaracja zmiennej reprezentującej obiekt formuarza procedure TForm.ButtonCick(Sender: TObject); var a,b,x: rea; a := StrToFoat(Edit.Text);... definicja metody Programowanie obiektowe s.-0

11 Odwołania do pó i metod Wszystkie składniki (prywatne i pubiczne) są dostępne bezpośrednio z poziomu kasy w której zostały zdefiniowane. W takim przypadku odwołanie do poa ub metody odbywa się przez okreśenie ich nazwy. Poza kasą można odwołać się tyko do składników pubicznych poprzez obiekt kasy, do której metoda naeży. Odwołania do składników wewnątrz kasy Poe: nazwa_poa Metoda procedurana: nazwa_metody(argumenty_aktuane); Metoda funkcyjna: Odwołania do metod poza kasą Poe: zmienna := nazwa_metody(argumenty_aktuane); nazwa_obiektu.nazwa_poa Metoda procedurana: nazwa_obiektu.nazwa(argumenty_aktuane); Metoda funkcyjna: zmienna := nazwa_obiektu.nazwa(arg_aktuane); argumenty_aktuane argumenty o typach zgodnych z typem argumentów formanych, których wartości zostaną przekazane do funkcji; zmienna nazwa zmiennej, w której zostanie umieszczona wartość zwracana przez metodę funkcyjną (typ zmiennej musi być zgodny z typem wyniku metody). Programowanie obiektowe s.-

12 Konstruktor i destruktor Konstruktor metoda wywoływana w chwii tworzenia nowego obiektu. Każda definiowana kasa automatycznie otrzymuje domyśny konstruktor bezparametrowy, który inicjaizuje poa tworzonych obiektów wartościami zerowymi. Destruktor metoda wywoływana w chwii usuwania obiektu. Każda definiowana kasa automatycznie otrzymuje domyśny destruktor. Destruktor z zasady jest metodą bezparametrową. Przyjęte konwencje nazewnictwa: konstruktor - Create, destruktor - Destroy. Jeżei w chwii tworzenia ub usuwania obiektu niezbędne jest wykonanie dodatkowych czynności, możiwe jest zdefiniowanie własnego konstruktora i destruktora. Konstruktor definiowany jawnie może mieć dowoną iczbę argumentów. Składnia dekaracji konstruktora: constructor Create(argumenty); Składnia dekaracji destruktora: destructor Destroy; override; Tak jak inne metody kasy konstruktor i destruktor wymagają odpowiedniej definicji zgodnej ze składnią przedstawioną na s.8. Programowanie obiektowe s.-

13 Tworzenie i usuwanie obiektów w Dephi Składnia dekaracji zmiennej obiektowej: var <nazwa_zm_obiekt>: <nazwa_kasy>; Tworzenie nowego obiektu <nazwa_zm_obiekt> := <nazwa_kasy>.create; Usuwanie obiektu: <nazwa_zm_obiekt>.free; Definicji obiektu jest równoważna definicji zmiennej w języku Pasca, <nazwa_zm_obiekt> jest unikanym identyfikatorem języka Pasca, <nazwa_kasy> to kasa standardowa, ub zdefiniowana przez użytkownika, Dekaracja zmiennej obiektowej może wystąpić dopiero po definicji kasy, Zmienną obiektową, która nie przechowuje obiektu można inicjaizować stałą ni, Do sprawdzenia czy do zmiennej został przypisany obiekt służy standardowa funkcja Assigned(<nazwazm_obiekt>): Booean. Każdy obiekt utworzony metodą Create musi być usunięty przy pomocy Free. W przeciwnym przypadku pozostaje w pamięci do zakończenia programu. Programowanie obiektowe s.-3

14 Programowanie obiektowe s.-4 Obiekt ułamek - anaiza Ułamek zwykły wyrażenie postaci: m gdzie jest icznikiem, m mianownikiem ułamka. Obiekt tego typu opisują dwie iczby całkowite (icznik i mianownik), które zawierają kompetną informację o dowonym ułamku i jednoznacznie go charakteryzują. m m m m m m Dodawanie: Odejmowanie: m m m m m m m m m m m m m m Mnożenie: Dzieenie: Podstawowe operacje arytmetyczne: Dodatkowe operacje: ustawienie wartości icznika i mianownika, dostęp do icznika i mianownika, dostęp do wartości reprezentowanej przez ułamek.

15 Poa prywatne: FLicznik iczba całkowita, icznik ułamka, FMianownik iczba całkowita, mianownik ułamka. Metody pubiczne: Create konstruktor bezparametrowy, tworzy nowy obiekt, Poa i metody kasy Ułamek Ustaw dwa argumenty (iczby całkowite), ustawia wartość icznika i mianownika (m. procedurana), Licznik bezparametrowa, zwraca icznik jako iczbę (m. funkcyjna), Mianownik bezparametrowa, zwraca mianownik jako iczbę (m. funkcyjna), Tekst bezparametrowa, zwraca ułamek jako ciąg znaków postaci '/m' (m. funkcyjna), Dziesiętnie bezparametrowa, zwraca wartość ułamka jako iczbę dziesiętną (m. funkcyjna), Dodaj jeden argument, obiekt kasy Ułamek, dodaje do obiektu inny ułamek (m. procedurana), Odejmij, Pomnóż, Podzie anaogicznie do Dodaj. Programowanie obiektowe s.-5

16 Projekt kasy Ułamek Ułamek FLicznik: Integer FMianownik: Integer p.ustaw(,m: Integer) f.licznik: Integer f.mianownik: Integer f.tekst: String f.dziesiętnie: Rea p.dodaj(u: TUłamek) p.odejmij(u: TUłamek) p.pomnóż(u: TUłamek) p.podzie(u: TUłamek) Ułamek FLicznik: FMianownik: Ułamek FLicznik: FMianownik: 5 5 Obiekty w programie Obiekty rzeczywiste Kasa opisująca strukturę obiektów "Ułamek" Impementacja operacji arytmetycznych: W wyniku wykonania dowonej operacji nie powstaje nowy obiekt "Ułamek", następuje modyfikacja wartości ewego operandu, np. dodawanie ułamków u i u: u+u u.dodaj(u) nastąpi modyfikacja wartości ułamka u. Programowanie obiektowe s.-6

17 Impementacja kasy TUamek type TUamek = cass private FLicznik : Integer; FMianownik: Integer; pubic constructor Create; procedure Ustaw(, m: String); function Licznik : Integer; function Mianownik: Integer; function Tekst : String; function Dziesietnie: Rea; procedure Dodaj(u: TUamek); procedure Odejmij(u: TUamek); procedure Pomnoz(u: TUamek); procedure Podzie(u: TUamek); Programowanie obiektowe s.-7

18 TUamek konstruktor i metoda Ustaw Zadaniem konstruktora jest utworzenie nowego obiektu kasy ułamek i zainicjowanie jego pó. Konstruktor bezparametrowy powinien tworzyć obiekty o wartości neutranej. W przypadku iczb za wartość neutraną można przyjąć zero. Kasa nie może wykorzystać konstruktora domyśnego, ponieważ mianownik ułamka nie może być zerem (dzieenie przez zero jest niedozwoone). constructor TUamek.Create; FLicznik := 0; FMianownik := ; //!!!Mianownik ułamka nie może być zerem Metoda Ustaw umożiwia nadanie obiektowi Ułamek dowonej wartości (icznik i mianownik są prywatne, nie ma do nich dostępu poza kasą). procedure TUamek.Ustaw(, m: Integer); FLicznik := ; FMianownik := m; Programowanie obiektowe s.-8

19 TUamek metody Licznik i Mianownik Metody umożiwiają dostęp do prywatnych pó obiektu Ułamek (tzw. metody dostępowe). Takie rozwiązanie umożiwia swobodne korzystanie z wartości przypisanych do obiektu, a jednocześnie zabezpiecza przed nieuprawnioną (potencjanie błędną) zmianą informacji przechowywanej w obiekcie. function TUamek.Licznik: Integer; Resut := FLicznik; function TUamek.Mianownik: Integer; Resut := FMianownik; Programowanie obiektowe s.-9

20 TUamek metody Tekst i Dziesietnie Metoda "Tekst" zwraca ułamek w postaci łańcucha znaków, ułatwia wyświetanie wartości obiektu przy pomocy komponentów takich jak Edit ub Labe. Bez metody tego typu konieczne byłoby pobieranie icznika i mianownika jako iczby, konwersja na tekst i łączenie w pojedynczy łańcuch znakowy. function TUamek.Tekst: String; var znak: Integer; znak := sign(flicznik) * sign(fmianownik); Resut := Resut + IntToStr(znak*abs(FLicznik)) + '/' + IntToStr(abs(FMianownik)); Metoda "Dziesietnie" zwraca wartość ułamka jako iczbę rzeczywistą, pozwaa na proste użycie obiektu w wyrażeniach zawierających standardowe operatory arytmetyczne. function TUamek.Dziesietnie: Rea; Resut := FLicznik/FMianownik; Programowanie obiektowe s.-0

21 TUamek operacje arytmetyczne Metody reaizujące operacje arytmetyczne przyjmują, że pierwszym (ewym) operandem jest obiekt na rzecz którego metoda została wywołana, drugim (prawym) obiekt, który został przekazany jako argument. W odróżnieniu od standardowych operacji arytmetycznych (+, -, *, /) zaimpementowane metody nie tworzą nowego obiektu-wyniku, modyfikują obiekt będący ewym operandem. procedure TUamek.Dodaj(u: TUamek); FLicznik := FLicznik*u.FMianownik+u.FLicznik*FMianownik; FMianownik := FMianownik * u.fmianownik; procedure TUamek.Pomnoz(u: TUamek); FLicznik := FLicznik * u.flicznik; FMianownik := FMianownik * u.fmianownik; Uwaga: odwołania "FLicznik", "FMianownik" dotyczą obiektu na rzecz którego metoda jest wywoływana. Odwołania "u.flicznik", "u.fmianownik" dotyczą obiektu, który jest argumentem metody. Programowanie obiektowe s.-

22 Działanie: 3 Przykłady użycia kasy TUamek Kod programu: var u, u: TUamek; u := TUamek.Create; u.ustaw(,3); u := TUamek.Create; u.ustaw(4,5); u.odejmij(u); // Wynik odejmowania znajduje się w u u.free; u.free; Działanie: Kod programu: var u: TUamek; x: Rea; u := TUamek.Create; x := +u.dziesietnie; u.free; u.ustaw(3,4); // Wynik odejmowania w zmiennej x Programowanie obiektowe s.-

23 Program Ułamki Ce programu Test metod kasy TUamek. Funkcje programu Przyciski "Licznik" i "Mianownik" tworzą obiekt na postawie danych w grupie "Ułamek", korzystając z odpowiednich metod dostępowych pobierają wartość atrybutu i wyświetają ją pou edycyjnym, Przycisk "Tekst" tworzy obiekt, pobiera jego znakową reprezentację i wyświeta w pou edycyjnym, Przycisk "Dziesiętnie" tworzy obiekt, pobiera jego reprezentację dziesiętną i wyświeta w pou edycyjnym, Przyciski "+", "-", "*" i "/" tworzą dwa obiekty i wykonują odpowiednią operację arytmetyczną modyfikując wartość pierwszego obiektu (Argument a), wynik w postaci znakowej i dziesiętnej wyświetany jest w dwóch poach edycyjnych. Pełny kod programu dostępny na stronie przedmiotu jako "Przykład0_6" Programowanie obiektowe s.-3

24 Organizacja kodu programu Definicję nowej kasy obiektów zazwyczaj umieszcza się w osobnym modue. Takie rozwiązanie ułatwia wieokrotne użycie kasy w różnych projektach (istniejący moduł można dołączyć do projektu przy pomocy poecenia uses). Nowy moduł można utworzyć wybierając opcję Fie->New->Unit. Dephi tworzy pusty szkieet modułu zawierający nagłówek, początek sekcji interfejsu (interface), początek sekcji impementacyjnej (impementation) oraz zakończenie modułu (end z kropką). Definicję kasy (definicję pó oraz dekarację prototypów metod) naeży umieścić w sekcji interfejsu modułu, definicję metod w sekcji impementacyjnej. Uwaga I: Nowoutworzone moduły nie mają dołączonych żadnych bibiotek. Zaeżnie od eementów użytych w kodzie kasy naeży dołączyć odpowiednie moduły używając kauzui uses (zazwyczaj co najmniej moduł SysUtis). Uwaga II: W ceu użycia kasy zdefiniowanej w osobnym modue naeży dołączyć ten moduł do kodu programu dopisując go do isty modułów w kauzui uses. Uwaga III: Listę wszystkich modułów wchodzących w skład projektu można wyświetić używając opcji View->Units Programowanie obiektowe s.-4

25 Program Ułamki moduł Unit, kod formuarza unit Unit; interface uses Windows, Messages, SysUtis, [ ]; type TForm = cass(tform) Edit: TEdit; Button: TButton; procedure ButtonCick(Sender: TObject); procedure ButtonCick(Sender: TObject);... private pubic var Form: TForm; impementation uses Unit; // <-- Dołączony moduł z definicją kasy {$R *.dfm} procedure TForm.ButtonCick(Sender: TObject);... procedure TForm.ButtonCick(Sender: TObject); end. Programowanie obiektowe s.-5

26 unit Unit; interface // sekcja interfejsu, definicja kasy type TUamek = cass private FLicznik : Integer; FMianownik: Integer; pubic constructor Create; procedure Ustaw(, m: Integer); function Licznik : Integer; procedure Dodaj(u: TUamek);... Program Ułamki moduł Unit, kod kasy impementation // sekcja impementacyjna, definicja metod uses SysUtis, Math; // bibioteki standardowe (IntToStr, sign) constructor TUamek.Create;... procedure TUamek.Ustaw(, m: Integer);... function TUamek.Licznik: Integer; end. Programowanie obiektowe s.-6

27 Program Ułamki procedura zdarzenia przycisku "Licznik" procedure TForm.ButtonCick(Sender: TObject); var u : TUamek; // zmienna obiektowa, m: Integer; := StrToInt(Edit.Text); m := StrToInt(Edit.Text); u := TUamek.Create; // utworzenie nowego obiektu u.ustaw(,m); // ustawienie icznika i mianownika Edit3.Text := IntToStr(u.Licznik); // pobranie icznika u.free; // usunięcie obiektu Przycisk "Mianownik" anaogicznie Programowanie obiektowe s.-7

28 Program Ułamki procedura zdarzenia przycisku "Tekst" procedure TForm.Button3Cick(Sender: TObject); var u : TUamek; // zmienna obiektowa, m: Integer; := StrToInt(Edit.Text); m := StrToInt(Edit.Text); u := TUamek.Create; // utworzenie nowego obiektu u.ustaw(,m); // ustawienie icznika i mianownika Edit3.Text := u.tekst; // pobranie reprezentacji tekstowej u.free; // usunięcie obiektu Programowanie obiektowe s.-8

29 Program Ułamki procedura zdarzenia przycisku "Dziesiętnie" procedure TForm.Button4Cick(Sender: TObject); var u : TUamek;, m: Integer; w : Rea; := StrToInt(Edit.Text); m := StrToInt(Edit.Text); u := TUamek.Create; // utworzenie nowego obiektu u.ustaw(,m); // ustawienie icznika i mianownika w := u.dziesietnie; // pobranie reprezentacji dziesiętnej Edit3.Text := FormatFoat('0.000', w); // Edit3.Text := FormatFoat('0.000', u.dziesietnie); u.free; // usunięcie obiektu Programowanie obiektowe s.-9

30 Program Ułamki procedura zdarzenia przycisku "+" procedure TForm.Button5Cick(Sender: TObject); var u, u: TUamek; // zmienne obiektowe, m,, m: Integer; := StrToInt(Edit4.Text); m := StrToInt(Edit5.Text); := StrToInt(Edit6.Text); m := StrToInt(Edit7.Text); u := TUamek.Create; // utworzenie obiektu u u.ustaw(,m); // ustawienie icz. i mian. u u := TUamek.Create; // utworzenie obiektu u u.ustaw(,m); // ustawienie iczn. i mian. u u.dodaj(u); // suma u+u (u jest modyfikowany) Edit8.Text := u.tekst; // pobranie wyniku Edit9.Text := FormatFoat('0.0###', u.dziesietnie); u.free; u.free; // usunięcie obiektu Programowanie obiektowe s.-30

31 Anaiza kasy TUamek Anaiza programu Ułamki Zaeta: powstał nowy typ danych, który umożiwia bezpośrednie działania na ułamkach zwykłych; Wada: utworzenie obiektu o dowonej wartości wymaga wykorzystania metody ustawiającej (nowy obiekt reprezentuje ułamek o wartości zero); Wada: metoda ustawiająca przyjmuje tyko wartości iczbowe (odpowiednie w przypadku tworzenia ułamków o wartościach stałych) w praktyce wygodne byłoby ustawianie icznika i mianownika na podstawie wartości łańcuchowych (ułatwia współpracę z typowym interfejsem użytkownika); Wada: zaimpementowane operacje arytmetyczne nie wyczerpują działań na ułamkach, możiwe jest np. dodawanie, mnożenie, itd. ułamka przez iczbę; Wada: kasa nie jest odporna na błędne wartości, możiwe jest utworzenie ułamka o zerowym mianowniku co prowadzi do błędów w programie. Anaiza kodu formuarza: Wada: program nie gwarantuje usuwania obiektów w przypadku błędu; Wada: obsługa błędów bardzo uproszczona, domyśne komunikaty nie opisują rzeczywistych probemów (naeży zapewnić obsługę wyjątków). Programowanie obiektowe s.-3

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego struktura klasy w Delphi hermetyzacja, definicja pól i metod klasy komponentów biblioteki VCL Techniki programowania II s.2-1 Najważniejsze pojęcia z wykładu 01 Programowanie

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

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

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

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

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

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

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

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

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

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

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

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

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

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) 1. Udostępnianie wszystkich prywatnych atrybutów do prezentacji, wprowadzenie standardu nazewnictwa plików nazwy plików

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

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

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

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

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

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych

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

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

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

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

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia

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

Wprowadzenie do języka Pascal

Wprowadzenie do języka Pascal Wprowadzenie do języka Pascal zmienne i typy standardowe operatory arytmetyczne, funkcje standardowe odczyt danych i wyświetlanie wyników obsługa wyjątków Techniki programowania I s.2-1 Podstawowe zasady

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

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

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

Z-ZIP-611z Języki programowania C++ Programming languages C++ Stacjonarne Wszystkie Katedra Informatyki Stosowanej Dr Marzena Nowakowska

Z-ZIP-611z Języki programowania C++ Programming languages C++ Stacjonarne Wszystkie Katedra Informatyki Stosowanej Dr Marzena Nowakowska KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angieskim Obowiązuje od roku akademickiego 2012/2013 Z-ZIP-611z Języki programowania C++ Programming anguages C++ A. USYTUOWANIE

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc

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

Zaliczenie przedmiotu:

Zaliczenie przedmiotu: INFORMATYKA 2 - Wykład 15h Kod przedmiotu: ES1C300 016, ECTS: 3 pkt. Kierunek: Elektrotechnika, studia stacjonarne I stopnia Semestr: III, rok akademicki: 2016/2017 Zaliczenie przedmiotu: Ogólne warunki

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 skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

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

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami: Wskaźniki są nieodłącznym elementem języka C. W języku C++ także są przydatne i korzystanie z nich ułatwia pracę, jednak w odróżnieniu do C wiele rzeczy da się osiągnąć bez ich użycia. Poprawne operowanie

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

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

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

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 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

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

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

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

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć. Zadanie 1. Utworzyć klasę reprezentującą liczby wymierne. Obiekty klasy powinny przechowywać licznik i mianownik rozłożone na czynniki pierwsze. Klasa powinna mieć zdefiniowane operatory czterech podstawowych

Bardziej szczegółowo

Zaawansowane programowanie obiektowe - wykład 5

Zaawansowane programowanie obiektowe - wykład 5 Zaawansowane programowanie obiektowe - wykład 5 dr Piotr Jastrzębski (czynnościowe) opisują zachowanie obiektów, komunikację pomiędzy nimi i ich odpowiedzialność. Interpreter Iterator (kursor) Łańcuch

Bardziej szczegółowo

Wykład 2 Składnia języka C# (cz. 1)

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

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

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

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

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

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

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

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

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

Przeciążanie operatorów

Przeciążanie operatorów Instrukcja laboratoryjna nr 4 Programowanie w języku C 2 (C++ poziom zaawansowany) Przeciążanie operatorów dr inż. Wilk-Jakubowski Jacek mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz Wprowadzenie Oprócz

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

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Konstruktory Konstruktory w językach obiektowych są to specjalne metody wywoływane podczas tworzenia nowego obiektu i służące do

Bardziej szczegółowo

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura Programowanie komputerów Programowanie obiektowe. Typy zmiennych proste i złożone Typy zmiennych "wbudowane", tj. identyfikowane przez słowa kluczowe, są określane jako proste: int short long float double

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

Zaawansowane programowanie w C++ (PCP)

Zaawansowane programowanie w C++ (PCP) Zaawansowane programowanie w C++ (PCP) Wykład 4 - wzorce projektowe. dr inż. Robert Nowak - p. 1/18 Powtórzenie klasy autonomiczne tworzenie nowych typów: dziedziczenie i agregacja dziedziczenie: przedefiniowywanie

Bardziej szczegółowo

Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView

Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView Wykonali: Krzysztof Przybyłek Piotr Misiuda IVFDS Istotę programowania obiektowego

Bardziej szczegółowo

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 1 Programowanie 1 Program wykładu Struktura programu Instrukcja przypisania Wprowadzanie danych Wyprowadzanie wyników Instrukcja

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

Semestr zimowy Podstawy Informatyki Nie

Semestr zimowy Podstawy Informatyki Nie KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angieskim Obowiązuje od roku akademickiego 201/2014 Języki programowania - DELPHI Programming anguages - Dephi A. USYTUOWANIE

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

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

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27 Programowanie w C++ Wykład 12 Katarzyna Grzelak 28 maja 2018 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27 Klasy cd K.Grzelak (Wykład 12) Programowanie w C++ 2 / 27 Klasy - powtórzenie Klasy typy definiowane

Bardziej szczegółowo

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas Analiza i projektowanie obiektowe 2016/2017 Wykład 10: Tworzenie projektowego diagramu klas Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Projektowy

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

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

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt

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

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

Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26

Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26 Programowanie w C++ Wykład 13 Katarzyna Grzelak 4 czerwca 2018 K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe

Bardziej szczegółowo

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30 Programowanie w C++ Wykład 11 Katarzyna Grzelak 13 maja 2019 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30 Klasy cd K.Grzelak (Wykład 11) Programowanie w C++ 2 / 30 Klasy - powtórzenie Klasy typy definiowane

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

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

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

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

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2016/2017 Outline Moduły i bariery abstrakcji 1 Moduły i bariery abstrakcji Moduły co to jest i po co to jest? Duży system dzielimy na mniejsze, łatwiejsze

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

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

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

Lekcja 6: Pascal. Procedura i funkcja

Lekcja 6: Pascal. Procedura i funkcja Lekcja 6: Pascal. Procedura i funkcja S. Hoa Nguyen 1 Materiał Książka: Programowanie w języku Pascal. Rozdział 9. Podprogramy Podprogramy - motywacja Skrócenie zapisu (wielokrotne powtórzenia tej samej

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

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

Semestr zimowy Podstawy informatyki, Logika TAK

Semestr zimowy Podstawy informatyki, Logika TAK KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angieskim Obowiązuje od roku akademickiego 2015/2016 Z-ID-304b Programowanie w środowisku RAD C++ Programming in RAD C++ Environment

Bardziej szczegółowo