Podstawy Programowania Programowanie Obiektowe

Podobne dokumenty
Programowanie obiektowe - 1.

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

Programowanie obiektowe

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

PODSTAWOWE ZASADY PROGRAMOWANIA OBIEKTOWEGO NA BAZIE PAKIETU ROOT

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

Materiały do zajęć VII

Język Java część 2 (przykładowa aplikacja)

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

Podstawy Programowania Obiektowego

Język programowania. Andrzej Bobyk

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

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

Kurs WWW. Paweł Rajba.

Laboratorium 1 - Programowanie proceduralne i obiektowe

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

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

Enkapsulacja, dziedziczenie, polimorfizm

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

TEMAT : KLASY DZIEDZICZENIE

Wykład 8: klasy cz. 4

Podstawy Programowania ZŁOŻONE TYPY DANYCH, LOGIKA CYFROWA I MACIERZE

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

Programowanie obiektowe

Technologie i usługi internetowe cz. 2

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

Modelowanie i Programowanie Obiektowe

Język Java część 2 (przykładowa aplikacja)

Programowanie obiektowe

Dziedziczenie. Tomasz Borzyszkowski

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

.NET Klasy, obiekty. ciąg dalszy

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

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

Programowanie obiektowe

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

Technologie obiektowe

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

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

Programowanie obiektowe

Wykład 9: Polimorfizm i klasy wirtualne

Wzorce projektowe. dr inż. Marcin Pietroo

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

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

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

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

Java Język programowania

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Programowanie obiektowe

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

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

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

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015

Do czego służą klasy?

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

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

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

Podstawy programowania III

Programowanie MorphX Ax

Zastosowania Robotów Mobilnych

Definiowanie własnych klas

Wykład 1: Wprowadzenie

Definicje klas i obiektów. Tomasz Borzyszkowski

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Dziedziczenie jednobazowe, poliformizm

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

1 Atrybuty i metody klasowe

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

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Konstruktor destruktor Programowanie obiektowe

Programowanie Obiektowe

Klasa dziedzicząca posiada wszystkie cechy klasy bazowej (plus swoje własne) dodawanie nowego kodu bez edycji (i ewentualnego wprowadzania

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

Obiektowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012

Wzorce projektowe. dr inż. Marcin Pietroo

C++ - [4-7] Polimorfizm

Programowanie obiektowe. Wprowadzenie

Projektowanie obiektowe. Roman Simiński Polimorfizm

Wykład 5: Klasy cz. 3

Podstawy Języka Java

Polimorfizm. dr Jarosław Skaruz

PHP 5 język obiektowy

Wykład 0 Informacje Podstawowe

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

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

Dokumentacja do API Javy.

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

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Technologie cyfrowe semestr letni 2018/2019

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Programowanie obiektowe

10. Programowanie obiektowe w PHP5

Wstęp do programowania obiektowego. Wykład 2

Transkrypt:

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

Pytania powtarzające x & y? x y? ~ x? x ^ y? o Definicje: bit, bajt, słowo, little/big endian

Pytania powtarzające - maskowanie o Rejestr R R7 R6 R5 R4 R3 R2 R1 R0???????? o Jak sprawdzić co siedzi w R4? o Jak przestawić R4 na 1? o Jak przestawić R4 na 0?

Pytania powtarzające: złożone typy danych Definicje: o Tablice/Sekwencje o Zbiory/słowniki o Struktury/Rekordy o Klasy/obiekty 4

Programowanie Obiektowe o Paradygmaty programowania o Imperatywny (strukturalny/proceduralny)

Programowanie Imperatywne skupione na instrukcjach dane przechowywane w głównej procedurze i przekazywane do i z metod/funkcji/procedur jasny rodział funkcjonalności i danych Global Data and Main Procedure

Programowanie obiektowe obiekt jest połączeniem danych (stan/atrybuty obiektu) i funkcjonalności (metod) program polega na tworzeniu obiektów i wysyłania między nimi komunikatów data data data

Klasa Klasa definicja typu zmiennej którym są obiekty stanowi opis/schemat (blueprint) jakie dane będzie przechowywał obiekt i jaką funkcjonalnością będzie dysponował (jakie ma metody)

Przykład klasa boxer oberwij ustaw imię/zdrowie/siłę imie:... zdrowie:... siła:... podaj imię/zdrowie/siłę walnij Dane: - imię - zdrowie - siła Metody: - walnij - oberwij - podaj imię/zdrowie/siłę (get) - ustaw imię/zdrowie/siłę (set)

OBIEKT Obiekt to byt programistyczny posiadający zmienne i metody opisane w klasie

Przykładowy obiekt: Gołota klasy Bokser oberwij ustaw imię/zdrowie/siłę imię: Gołota zdrowie: 100 siła: 95 podaj imię/zdrowie/siłę walnij Obiekt Gołota: Dane: - imię = Gołota - zdrowie = 100 - siła = 95 Metody: - walnij - oberwij - podaj imię/zdrowie/siłę (get) - ustaw imię/zdrowie/siłę (set)

Komunikaty W programowaniu obiektowym instrukcje polegają na wysyłaniu przez obiekty komunikatów (message).

Elementy komunikatu nazwa obiektu. nazwa metody (parametry metody) Gołota.Oberwij(Tyson.Walnij()) ustaw imię/zdrowie/siłę ustaw imię/zdrowie/siłę oberwij imię: Tyson zdrowie: 100 siła: 120 walnij oberwij imię: Gołota zdrowie: 100 siła: 95 walnij podaj imię/zdrowie/siłę podaj imię/zdrowie/siłę

Konstruktor Metoda uruchamiana w momencie stworzenia obiektu. Zazwyczaj wykorzystywana do ustawienia wartości początkowych zmiennych. Czasami uruchamia też statyczne metody (np. licznik obiektów).

Dynamiczne vs. Statyczne Zmienne i metody dynamiczne należą do danego obiektu. Każdy obiekt ma własne. Zmienne i metody statyczne należą do klasy. Są współdzielone przez obiekty. Mogą być uruchamiane/modyfikowane bez tworzenia obiektu.

Publiczne vs prywatne o Prywatne dane/metody mogą być modyfikowane/uruchamiane tylko przez obiekty tej samej klasy o Publiczne dane/metody dostępne dla wszystkich innych klas o Chronione (protected) dostępne dla danej klasy i klas z niej dziedziczących

Programowanie proceduralne vs programowanie obiektowe Proceduralne dane i funkcjonalność rozdzielne program to ciąg instrukcji operujących na danych lub wywołujących metody Obiektowe połączenie danych i funkcjonalności każdy obiekt przechowuje jakieś dane (stan/atrybuty) i posiada funkcjonalność klasy opisują obiekty program to tworzenie obiektów i wywoływanie ich metod

Wady i zalety Proceduralne (imperatywne) + bardziej zbliżone do maszynowego (więc szybsze i wydajniejsze) + dobre to tworzenia krótkich programów przez jednego programistę - gorsze do tworzenia złożonych programów przez wielu programistów - trudne w modyfikacji i rozbudowie Obiektowe + dobre dla tworzenia rozbudowanych programów przez wielu programistów + naturalnie modeluje interfejsy graficzne + łatwe w modyfikacji, rozbudowie - mniej wydajne - dużo zbędnego kodu dla małych programów

Nowe słownictwo OOP Abstraction (abstrakcja) Polymorphism (polimorfizm) Inheritance (dziedziczenie) Encapsulation (enkapsulacja/hermetyzacja)

Abstrakcja Bardziej abstrakcyjne myślenie o programie: mamy obiekty (agentów) wykonujących swoje zadania i wymieniających komunikaty. nie musimy skupiać się na wewnętrznym działaniu/strukturze tych obiektów (chyba że to my definiujemy klasę) Klasy i metody abstrakcyjne to takie których obiektów nie można tworzyć (służą tylko za schemat do dziedziczenia)

Dziedziczenie Klasy mogą dziedziczyć z innych. Przejmują wtedy ich dane i metody. Mogą wtedy dodawać swoje nowe dane i metody lub przeciążać (nadpisać) stare. Rodzic/dziecko. Superclass/Subclass.

Hermetyzacja Dane ustawiane jako prywatne, metody jako publiczne. Pozwala to uniknąć przypadkowego edytowania danych lub błędów dostępu do pamięci. Interfejs typ klasy składającej się tylko z publicznych metod, bez danych. met hod met hod met hod met hod da ta da ta metho d metho d met hod met hod da ta metho d

Polimorfizm Możliwość używania metod/zmiennych na kilka różnych sposobów. Np. ta sama metoda zadziała inaczej w zależności od typu danych który otrzyma, lub obiektu z którego została uruchomiona. override (zastąpić) dziedzicząca klasa tworzy własną wersję jakiejś metody overload (przeciążyć) tworzymy inną metodę o tej samej nazwie ale przyjmującą inne parametry Hello! Woof! Meow! speak() speak() speak()