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

Podobne dokumenty
Podstawy Programowania Obiektowego

Programowanie obiektowe - 1.

Technologie i usługi internetowe cz. 2

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

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

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

Materiały do zajęć VII

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

Język programowania. Andrzej Bobyk

Wykład 8: klasy cz. 4

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

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

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

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

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

Podstawy Języka Java

private - oznacza, że wszystkie elementy klasy bazowej zmieniają się w prywatne.

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

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

TEMAT : KLASY DZIEDZICZENIE

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

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

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

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

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

Dziedziczenie jednobazowe, poliformizm

Modelowanie i Programowanie Obiektowe

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

Wykład 9: Polimorfizm i klasy wirtualne

Kurs WWW. Paweł Rajba.

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

Definiowanie własnych klas

Enkapsulacja, dziedziczenie, polimorfizm

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

KARTA KURSU. Programowanie obiektowe

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Wstęp do programowania obiektowego. Wykład 2

Wykład 5: Klasy cz. 3

Programowanie obiektowe

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

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

.NET Klasy, obiekty. ciąg dalszy

Język C++ Programowanie obiektowe

Programowanie, część I

Do czego służą klasy?

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

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

Zaawansowane programowanie w C++ (PCP)

Programowanie obiektowe

Zaawansowane programowanie w języku C++ Programowanie obiektowe

PARADYGMATY PROGRAMOWANIA Wykład 4

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

Zaawansowane programowanie w C++ (PCP)

Programowanie obiektowe

Programowanie obiektowe w języku

Technologie obiektowe

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

hierarchie klas i wielodziedziczenie

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

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

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

KLASY cz.1. Dorota Pylak

C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm POLIMORFIZM

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

Programowanie obiektowe

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

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

Polimorfizm. dr Jarosław Skaruz

Programowanie, część I

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

10. Programowanie obiektowe w PHP5

Wstęp do Programowania 2

Rozdział 4 KLASY, OBIEKTY, METODY

Dziedziczenie. dr Jarosław Skaruz

Programowanie obiektowe

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.

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

Podstawy programowania III

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie I C6

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

PARADYGMATY PROGRAMOWANIA Wykład 2

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

OBIEKTY PHP. G. Panuś

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Programowanie obiektowe

Do czego służą klasy?

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

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

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

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

Wprowadzenie do programowanie obiektowego w języku C++

Oracle PL/SQL. Paweł Rajba.

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Programowanie obiektowe. Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt

Wykład nr 5. Temat: Klasy i abstrakcja danych, cz. I. W.S. Gilbert

Transkrypt:

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, która definiuje programy za pomocą obiektów elementów łączących: stan (dane = atrybuty), zachowanie (procedury = metody). Program obiektowy to zbiór obiektów komunikujących się pomiędzy sobą w celu wykonywania zadao. Podejście to różni się od tradycyjnego programowania proceduralnego, gdzie dane i procedury nie są ze sobą bezpośrednio związane.

Cechy obiektowych języków programowania https://www.c-sharpcorner.com/uploadfile/d0a1c8/object-oriented-programming-in-c-sharp-

Cechy obiektowych języków programowania Abstrakcja - każdy obiekt w systemie służy jako model abstrakcyjnego "wykonawcy", który może wykonywad pracę, opisywad i zmieniad swój stan, oraz komunikowad się z innymi obiektami w systemie, bez ujawniania, w jaki sposób zaimplementowano dane cechy. Enkapsulacja (hermetyzacja) - ukrywanie implementacji. Zapewnia, że obiekt nie może zmieniad stanu wewnętrznego innych obiektów w nieoczekiwany sposób. Tylko wewnętrzne metody obiektu są uprawnione do zmiany jego stanu.

Cechy obiektowych języków programowania Polimorfizm - referencje i kolekcje obiektów mogą dotyczyd obiektów różnego typu, a wywołanie metody dla referencji powoduje zachowanie odpowiednie dla pełnego typu obiektu wywoływanego. Jeśli dzieje się to w czasie działania programu, to nazywa się to późnym wiązaniem lub wiązaniem dynamicznym. Niektóre języki udostępniają bardziej statyczne (w trakcie kompilacji) rozwiązania polimorfizmu - na przykład szablony i przeciążanie operatorów w C++.

Cechy obiektowych języków programowania Dziedziczenie - porządkuje i wspomaga polimorfizm i enkapsulację dzięki umożliwieniu definiowania i tworzenia specjalizowanych obiektów na podstawie bardziej ogólnych.

Pojęcia klasy i obiektu Obiekt - podstawowe pojęcie wchodzące w skład paradygmatu obiektowości w analizie i projektowaniu oprogramowania oraz w programowaniu. struktura zawierająca dane i metody klasy, czyli funkcje służące do wykonywania na tych danych określonych zadao. Każdy obiekt ma trzy cechy: tożsamośd, czyli cechę (atrybuty) umożliwiającą jego identyfikację i odróżnienie od innych obiektów stan, czyli aktualny stan danych składowych zachowanie (ang. behaviour), czyli zestaw metod wykonujących operacje na tych danych.

Pojęcia klasy i obiektu Klasa - zbiór obiektów wyróżniających się wspólnymi cechami takimi jak struktura i zachowanie; częściowa lub całkowita definicja dla obiektów Klasa to zdefiniowanie własnego typu danych - wymyślony na potrzeby danego programu.

Składniki klasy Deklaracja klasy informuję kompilator: o tym, co oznacza nazwa klasy, jakie pola zawiera klasa (jakie informacje przechowuje), jakie metody zawiera klasa (co potrafi robid).

Tworzenie obiektów Obiekt to indywidualne wystąpienie klasy. Definiowanie nowego obiektu wygląda tak samo, jak definiowanie zwykłej zmiennej. Do usuwania obiektu służy polecenie delete ( detelet obiekt )

Definicje metod składowych klasy Wewnątrz klasy Na zewnątrz klasy

Enkapsulacja sposoby ukrywania informacji Elementy klasy mogą byd: prywatne (private) - składniki klasy dostępne są tylko i wyłącznie w klasie i poprzez funkcje składowe klasy. publiczne (public)- składniki klasy dostępne zarówno dla funkcji składowych klasy jak również poza klasą. chronione (protected) - składniki klasy nie dostępne poza klasą, jednak dostępne dla klas pochodnych. Domyślnie wszystkie pola i metody klasy są prywatne!

Enkapsulacja sposoby ukrywania informacji Jeśli składnik klasy jest prywatny, żadna funkcja oraz metoda nie należąca do klasy nie ma do niego dostępu!

Dostęp do danych i metod składowych klasy obiekt - do danej składowej klasy można odwoład się poprzez operator. obiekt.skladnik obiekt.metoda() wskaźnik - do danej składowej obiektu wskazanego przez wskaźnik można odwoład się poprzez operator -> wskaznik -> skladnik wskaznik -> metoda() referencja - do danej składowej obiektu znanego z referencji można odwoład się poprzez operator. referencja.skladnik referencja.metoda()

Dostęp do danych i metod składowych klasy - przykład

Dostęp do danych i metod składowych klasy Jak najwięcej elementów klasy powinno byd prywatnych! Do elementów prywatnych klasy mamy dostęp za pomocą tzw. metod dostępu.

Dostęp do danych i metod składowych klasy Zwykle metody dostępu zaczynają się od słów get i set

Konstruktor i destruktor Konstruktor służy do inicjalizowania zmiennych wewnętrznych klasy ma taką samą nazwę jak nazwa klasy nie zwraca żadnej wartości (jest typu void) Destruktor służy do zwalniania miejsca w pamięci zarezerwowanego dla obiektu nazwa = ~ + nazwa klasy Jeżeli nie deklarujemy konstruktora klasy, to kompilator automatycznie tworzy konstruktor domyślny, który nie pobiera żadnych parametrów. Analogicznie, jeżeli nie zadeklarujemy sami destruktora, to kompilator zrobi to za nas.

Konstruktor i destruktor - przykład

Wskaźnik this Wskaźnik this wskazuje na obiekt, dla którego została wywołana metoda. Wskaźnika this nie można modyfikować. Prawie zawsze użycie delete na this jest poważnym błędem

Wskaźnik this

Wskaźnik this porównywanie obiektów

Dziedziczenie klas Dziedziczenie to mechanizm umożliwiający wykorzystanie nowych klas w oparciu o stare klasy. Dzięki mechanizmowi rzutowania możliwe jest interpretowanie obiektu klasy tak, jakby był obiektem klasy z której się wywodzi. Umożliwia to skonstruowanie szeregu klas wywodzących się z tej samej klasy i korzystanie w przejrzysty i spójny sposób z ich wspólnych możliwości.

Dziedziczenie klas Klasa bazowa klasa, z której dziedziczy klasa pochodna Klasa pochodna klasa, która dziedziczy po klasie bazowej Klasa pochodna może korzystad z funkcjonalności klasy bazowej i z założenia powinna rozszerzad jej możliwości (poprzez dodanie nowych metod, lub modyfikację metod klasy bazowej). http://www.egrafik.pl/kurs-c-plus-plus/7.1.php

Dziedziczenie klas Składnia: operator_widoczności: public - oznacza, że dziedziczone elementy (np. zmienne lub funkcje) mają taką widocznośd jak w klasie bazowej. public -> public protected -> protected private -> private Protected - oznacza, że dziedziczone elementy publiczne zmieniają się w chronione: public -> protected protected -> protected private -> private private - oznacza, że wszystkie elementy klasy bazowej zmieniają się w prywatne: public -> private protected -> private private -> private brak operatora - oznacza, że domyślnie zostanie wybrany operator private.

Dziedziczenie klas

Literatura Bruce Eckel, Thinking in C++, Helion