Programowanie obiektowe



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

Podstawy Programowania Obiektowego

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

Wykład 8: klasy cz. 4

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

Enkapsulacja, dziedziczenie, polimorfizm

Materiały do zajęć VII

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

Definiowanie własnych klas

Programowanie obiektowe - 1.

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

Rozdział 4 KLASY, OBIEKTY, METODY

Zaawansowane programowanie w C++ (PCP)

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

Wykład 5: Klasy cz. 3

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

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

TEMAT : KLASY DZIEDZICZENIE

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

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

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

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

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

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

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

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

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

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

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

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

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

OBIEKTY PHP. G. Panuś

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

Do czego służą klasy?

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

Rysunek 1: Przykłady graficznej prezentacji klas.

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

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

Wstęp do Programowania 2

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

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

Programowanie komputerowe. Zajęcia 7

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

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

Podstawy programowania III

Zaawansowane programowanie w C++ (PCP)

Technologie i usługi internetowe cz. 2

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne, interfejsy i polimorfizm

Definiowanie własnych klas

Technologie obiektowe

Programowanie Obiektowe i C++

Interfejsy i klasy wewnętrzne

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

Modelowanie obiektowe

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

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

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

Podstawy programowania obiektowego

Dziedziczenie jednobazowe, poliformizm

Programowanie obiektowe i zdarzeniowe

Programowanie obiektowe i C++ dla matematyków

Programowanie obiektowe

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

KLASY cz.1. Dorota Pylak

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

Diagramy klas. dr Jarosław Skaruz

Podstawy Programowania Obiektowego

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM

Języki i metody programowania Java. Wykład 2 (część 2)

Programowanie obiektowe

Programowanie obiektowe

PARADYGMATY PROGRAMOWANIA Wykład 4

Pakiety i interfejsy. Tomasz Borzyszkowski

Do czego służą klasy?

Polimorfizm. dr Jarosław Skaruz

Czym są właściwości. Poprawne projektowanie klas

Laboratorium 1 - Programowanie proceduralne i obiektowe

Wykład 4: Klasy i Metody

Podstawy programowania obiektowego

Język C++ Programowanie obiektowe

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

Podstawy algorytmiki i programowania - wykład 4 C-struktury

PARADYGMATY PROGRAMOWANIA Wykład 2

Wykład 7: Pakiety i Interfejsy

Aplikacje w środowisku Java

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

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

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

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

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

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 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32

Programowanie obiektowe

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Transkrypt:

Programowanie obiektowe Wykład: klasa, obiekt, po co używać klas, właściwości, atrybuty, funkcje, zachowania, metody, przykładowe obiekty, definiowanie klasy, obiektu, dostęp do składników klasy, public, private, protected, atrybuty publiczne, prywatne, chronione

Pojęcie klasy Klasa - jest to pojęcie abstrakcyjne, oznaczające w programowaniu obiektowym własny typ danych. Zestaw taki składa się z właściwości (atrybutów) oraz funkcji (zachowań, metod) danego obiektu. Na podstawie klasy mogą być wytwarzane konkretne, kolejne egzemplarze obiektów. Dane klasy nazywane są danymi składowymi, natomiast funkcje funkcjami składowymi albo metodami. Ważne: klasa to typ obiektu, a nie sam obiekt!

Klasy postaci w grach typu RPG Każda klasa ma własny zestaw atrybutów oraz działań (umiejętności). Pojedyncze atrybuty np. siła fizyczna mogą występować we wszystkich klasach, niemniej jednak zawsze łatwo określić o czyją siłę chodzi, jeżeli tylko wskażemy na obiekt (czyli na konkretnego reprezentanta klasy) np. na złodzieja o imieniu JanJansen wojownik kapłan złodziej mag

Po co w ogóle używać klas? Odpowiedź jest prosta: uzyskujemy lepsze odwzorowanie rzeczywistości w naszym programie. Zamiast zestawu niepowiązanych zmiennych otrzymujemy uporządkowany zbiór obiektów (mających swoje atrybuty i metody), w którym łatwiej się odnaleźć. W przypadku dużych projektów wprowadzenie takiej naturalnej hierarchii ma olbrzymie znaczenie. Program komputerowy napisany obiektowo traktować możemy jako zbiór obiektów komunikujących się pomiędzy sobą w celu wykonywania zadań. Podejście obiektowe ma oczywiście więcej zalet zdążymy je wszystkie poznać i docenić podczas kilku nadchodzących zajęć

Przykład 1 Barbarzyńca w grze Diablo Atrybuty: - imię - siła - zręczność - odporność - charyzma - udźwig Metody: - atak toporem - tańce wojenne - berserker

Przykład 2 pralka automatyczna Atrybuty: - temperatura prania - obr/min - nr programu - waga - gabaryty - marka Metody: - pranie - wirowanie - płukanie

Uwaga! Przerywam ten program, aby ponownie przypomnieć! WHY SO SERIOUS? Jeszcze raz: klasa to typ obiektu, a nie sam obiekt! Opis cech i umiejętności barbarzyńcy to jeszcze nie człowiek z toporem Projekt pralki to jeszcze nie pralka Przepis na ciasto to nie pachnąca szarlotka

Klasy - implementacja w C++ DEFINICJA KLASY class Nasz_Typ //definicja klasy o nazwie Nasz_Typ { //ciało klasy - atrybuty i metody }; //średnik! DEFINICJA OBIEKTÓW (REPREZENTANTÓW) KLASY int zmienna; //definicja zmiennej typu całkowitego Nasz_Typ obiekt; //definicja obiektu typu Nasz_Typ Nasz_Typ &referencja = obiekt; //referencja obiektu Nasz_Typ *wskaznik = &obiekt; //wskaźnik do obiektu

Odwołanie się do składnika klasy (1) class Osoba; Osoba McLovin; JEŻELI ATRYBUT JEST PUBLICZNY: McLovin.dzien_ur = 6; McLovin.miesiac_ur = 3; McLovin.rok_ur = 1981; McLovin.adres = Momona ST 892 ; //itd... DWUARGUMENTOWY OPERATOR KROPKI DZIAŁA NASTĘPUJĄCO: NAZWA_OBIEKTU.NAZWA_ATRYBUTU_LUB_FUNKCJI_SKŁADOWEJ

Dostęp do składników klasy private taki składnik jest dostępny tylko dla funkcji składowych danej klasy (oraz dla funkcji zaprzyjaźnionych z tą klasą, o czym później). protected składnik jest dostępny tak, jak składnik private, ale dodatkowo jest jeszcze dostępny dla klas wywodzących się (dziedziczących) z danej klasy. Czy należysz do rodziny lub przyjaźnisz się z nią? public składnik jest dostępny bez ograniczeń (jest publiczny). Zwykle są to wybrane funkcje składowe, za pomocą których dokonuje się z zewnątrz operacji na danych prywatnych (czyli interfejs jaki świadomie udostępniamy).

Odwołanie się do składnika klasy (2) A CO JEŻELI ATRYBUT JEST PRYWATNY I CHCEMY GO ODCZYTAĆ? Tworzymy w klasie funkcję, która może odczytać wartość składnika prywatnego (bo funkcja ta jest częścią klasy i należy do rodziny) ZAŁÓŻMY ŻE ATRYBUT ADRES JEST PRYWATNY: void odczytaj_adres() wewnątrz klasy brak kropki! { cout<<adres; } FUNKCJA ODCZYTUJE PRYWATNY SKŁADNIK: McLovin.odczytaj_adres();