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

Podobne dokumenty
Programowanie obiektowe w Pascalu

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

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

Programowanie obiektowe - 1.

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

Podstawy Programowania Obiektowego

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

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

Wykład 8: klasy cz. 4

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

Język programowania. Andrzej Bobyk

Technologie i usługi internetowe cz. 2

Wykład 5: Klasy cz. 3

Programowanie modułowe

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

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

Wykład 9: Polimorfizm i klasy wirtualne

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

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

Wykład PASCAL - Pliki tekstowe

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

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

Podstawy Języka Java

Język programowania PASCAL

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

Podstawy Programowania 2

Do czego służą klasy?

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Wstęp do programowania obiektowego. Wykład 2

Definiowanie własnych klas

Wykład 9: Metody wirtualne i polimorfizm

Materiały do zajęć VII

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie obiektowe

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

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

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

Enkapsulacja, dziedziczenie, polimorfizm

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Modelowanie i Programowanie Obiektowe

Kurs WWW. Paweł Rajba.

Technologie obiektowe

Podstawy Programowania semestr drugi. Wykład czternasty

TEMAT : KLASY DZIEDZICZENIE

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

Podstawy programowania obiektowego

Delphi podstawy programowania. Środowisko Delphi

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

KLASY cz.1. Dorota Pylak

Wykład 1: Wskaźniki i zmienne dynamiczne

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

PHP 5 język obiektowy

hierarchie klas i wielodziedziczenie

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

Dziedziczenie jednobazowe, poliformizm

Programowanie modułowe

Zaawansowane programowanie obiektowe - wykład 5

Programowanie obiektowe W1 Wprowadzenie. Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie komputerowe. Zajęcia 7

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.

Oracle PL/SQL. Paweł Rajba.

Do czego służą klasy?

Zaawansowane programowanie w języku C++ Programowanie obiektowe

PARADYGMATY PROGRAMOWANIA Wykład 2

Diagramy klas. dr Jarosław Skaruz

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

Ada-95. Dariusz Wawrzyniak

Procedury i funkcje - powtórzenie i uzupełnienia. Przykład funkcji potęgowanie przy wykładniku naturalnym

Materiały do laboratorium MS ACCESS BASIC

Definiowanie własnych klas

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

Klasy abstrakcyjne, interfejsy i polimorfizm

Programowanie obiektowe

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie obiektowe

Programowanie obiektowe. Obiekt Klasa Składnia klasy: Interfejsy Składnia interfejsu: Metody Składnia instrukcji Sub: Składnia instrukcji function:

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

Programowanie obiektowe

OBIEKTY PHP. G. Panuś

Programowanie obiektowe

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Programowanie obiektowe w C++ Wykład 02 Temat wiodący: Koncepcja klasy. Obiekty.

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

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

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Podstawy programowania. Wykład: 6. Tablice statyczne. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Funkcje i instrukcje języka JavaScript

Wykład V PASCAL - operacje na znakach i łańcuchach; - dźwięk,

Programowanie obiektowe

Podstawy programowania III

Transkrypt:

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ą obiektów elementów łączących stan (czyli dane, nazywane najczęściej polami) i zachowanie (czyli procedury, tu: metody). Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań. Źródło: Wikipedia 2

Definicja typu obiektowego Type Nazwa = Object Private {deklaracje pól obiektu} Public {deklaracje pól obiektu} End; Typ obiektowy składa się z dwóch sekcji: prywatnej i publicznej. Obie sekcje mogą zawierać deklaracje zmiennych opisujących obiekt lub metod, które będą wykonywane na obiekcie. Domyślnie wszystkie deklaracje są publiczne. 3

Definicja typu obiektowego Przykład obiektu: type trojkat = object a, b, c: real; function obwod:real; function trojkat.obwod:real; obwod:=a+b+c; var t: trojkat; readln(t.a, t.b, t.c); writeln( Obwod=, t.obwod);.... 4

Definicja typu obiektowego W deklaracji typu obiektowego w pierwszej kolejności wymieniane są pola obiektu, a w drugiej metody. Każda metoda deklarowana jest w typie obiektowym w postaci zapowiedzi zawierającej jedynie nagłówek metody. Kompletna deklaracja metody podawana jest odrębnie poza deklaracją typu obiektowego. Nazwa metody jest uzupełniana prefiksem nazwą typu obiektowego. Lista parametrów w nagłówku nie może być zmieniona w stosunku do poprzedzającej zapowiedzi. Może być jedynie powtórzona bez zmian lub opuszczona w całości. Typy obiektowe mogą być deklarowane tylko globalnie, w programie lub w module lecz nie wewnątrz procedury. 5

Definicja typu obiektowego Zmienne obiektowe muszą być deklarowane przez wykorzystanie identyfikatora typu (zdefiniowanego zawsze globalnie), a nie opisu typu. Metoda należy do obiektu i w związku z tym posiada dostęp do pól i innych metod obiektu bezpośrednio. W treści procedur można korzystać z nazw pól bez konieczności dopisywania prefiksów lub umieszczania ich w parametrach metod - obydwa rozwiązania są nawet zabronione. Np.: procedure. Trojkat obwod; Trojkat := a + b + c; 6

Definicja typu obiektowego Poza definicją typu obiektowego i definicjami związanych z nim metod przy odnoszeniu się do pól lub metod obiektu należy używać nazw dwuczęściowych: <nazwa zmiennej obiektowej>. < nazwa pola lub metody> Podobnie jak w przypadku rekordów możliwe jest uproszczenie dostępu do składowych obiektu przy wykorzystaniu instrukcji with. Zmienne lokalne i parametry metody nie mogą mieć tych samych nazw co pola obiektu. W metodach można wywoływać inne metody obiektu nawet te zdefiniowane szczegółowo później (bez prefiksu, wystarczy nazwa metody) 7

Hermetyzacja Czyli ukrywanie implementacji (enkapsulacja). Zapewnia, że obiekt nie może zmieniać stanu wewnętrznego innych obiektów w nieoczekiwany sposób. Tylko własne metody obiektu są uprawnione do zmiany jego stanu. Każdy typ obiektu prezentuje innym obiektom swój interfejs, który określa dopuszczalne metody współpracy. Źródło: Wikipedia 8

Hermetyzacja Przykład metod dostępowych: procedure trojkat.ustawdane(x, y, z: Real); a := x; b := y; c:= z; procedure trojkat.zwrocdane(var x, y, z: Real); x := a; y := b; z:= a; function BokA: real; BokA:=a; 9

Dziedziczenie Dziedziczenie umożliwia definiowanie i tworzenie specjalizowanych obiektów na podstawie bardziej ogólnych. Jest ważną cechą programowania obiektowego pozwalającą na łatwą rozbudowę, a także modyfikację opracowanych obiektów. Istotne jest to, że rozbudowa obiektu nie wymaga ingerencji w już opracowany kod programu. Co więcej, wystarczy by moduły zawierające definicje modyfikowanych typów obiektowych były dostępne w postaci skompilowanej. 10

Dziedziczenie type trojkat2 = object(trojkat) function wysokosca: real; function Rwpisany: real; function trojkat2.wysokosca: real; wysokosca:=2*pole/boka; function trojkat2.rwpisany: real; Rwpisany:=4*pole/obwod; 11

Literatura: W prezentacji wykorzystano przykłady i fragmenty: R. Jarża, Turbo Pascal. Szkoła programowania, Wydawnictwo Robomatic 2000. (dostępne w bibliotece uczelni) http://pascal.kurs-programowania.pl http://4programmers.net T. M. Sadowski, Turbo Pascal. Programowanie, Helion 1996. 12 dr Artur Bartoszewski - Nowoczesne technologie informatyczne - WYKŁAD