15
PyLadies 3.0 #12: Klasy - OOP

Pyladies 3.0 #12 Object Oriented Programming

Embed Size (px)

Citation preview

Page 1: Pyladies 3.0 #12 Object Oriented Programming

PyLadies 3.0

#12: Klasy - OOP

Page 2: Pyladies 3.0 #12 Object Oriented Programming

Programowanie obiektowe - OOP

® 2016 Piotr Dyba PyLadies Poland 3.0

paradygmat programowania, w którym programy definiuje się za pomocą obiektów – dane i metody, komunikujących się pomiędzy sobą w celu wykonywania zadań.

Page 3: Pyladies 3.0 #12 Object Oriented Programming

OOP cechy:

® 2016 Piotr Dyba PyLadies Poland 3.0

AbstrakcjaHermetyzacjaPolimorfizmDziedziczenie

Page 4: Pyladies 3.0 #12 Object Oriented Programming

Abstrakcja:

® 2016 Piotr Dyba PyLadies Poland 3.0

Pewnego rodzaju uproszczenie rozpatrywanego problemu, polegające na ograniczeniu zakresu cech manipulowanych obiektów wyłącznie do cech kluczowych.

Cel stosowania abstrakcji jest dwojaki: ułatwienie rozwiązania problemu i zwiększenie jego ogólności.

Page 5: Pyladies 3.0 #12 Object Oriented Programming

Hermetyzacja:

® 2016 Piotr Dyba PyLadies Poland 3.0

(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. Hermetyzacja polega na ukrywaniu pewnych danych składowych lub metod obiektów danej klasy tak, aby były one dostępne tylko metodom wewnętrznym danej klasy lub funkcjom zaprzyjaźnionym.

Page 6: Pyladies 3.0 #12 Object Oriented Programming

Polimorfizm:

® 2016 Piotr Dyba PyLadies Poland 3.0

Referencje i kolekcje obiektów mogą dotyczyć obiektów różnego typu, a wywołanie metody dla referencji spowoduje zachowanie odpowiednie dla pełnego typu obiektu wywoływanego.

Page 7: Pyladies 3.0 #12 Object Oriented Programming

Dziedziczenie:

® 2016 Piotr Dyba PyLadies Poland 3.0

Mechanizm współdzielenia funkcjonalności między klasami. Klasa może dziedziczyć po innej klasie, co oznacza, że oprócz swoich własnych atrybutów oraz zachowań, uzyskuje także te pochodzące z klasy, z której dziedziczy. Klasa dziedzicząca jest nazywana klasą potomną (subclass), zaś klasa, z której następuje dziedziczenie — klasą bazową (superclass). Z jednej klasy bazowej można uzyskać dowolną liczbę klas pochodnych. Klasy pochodne posiadają obok swoich własnych metod i pól, również kompletny interfejs klasy bazowej

Page 8: Pyladies 3.0 #12 Object Oriented Programming

Tworzenie klasy:

® 2016 Piotr Dyba PyLadies Poland 3.0

Page 9: Pyladies 3.0 #12 Object Oriented Programming

Tworzenie instancji:

® 2016 Piotr Dyba PyLadies Poland 3.0

Page 10: Pyladies 3.0 #12 Object Oriented Programming

Używanie instancji:

® 2016 Piotr Dyba PyLadies Poland 3.0

Page 11: Pyladies 3.0 #12 Object Oriented Programming

Hermetyzacja:

® 2016 Piotr Dyba PyLadies Poland 3.0

Page 12: Pyladies 3.0 #12 Object Oriented Programming

Dziedziczenie:

® 2016 Piotr Dyba PyLadies Poland 3.0

Page 13: Pyladies 3.0 #12 Object Oriented Programming

Polimorfizm:

® 2016 Piotr Dyba PyLadies Poland 3.0

Page 14: Pyladies 3.0 #12 Object Oriented Programming

Zadania

® 2016 Piotr Dyba PyLadies Poland 3.0

1. Program z poprzednich zajęć do liczenia BMI stwórz w postaci klasy, zaimplementuj metodę pobrania przez użytkownika wszystkich potrzebnych danych, i liczenia wartości BMI.

2. Stwórz podobny program do liczenia przeciwprostokątnej z Pitagorasa, i wyłącz część wspólną do klasy wspólnej.

3. Zaimplementuj zapisywanie JSON z danymi na dysk i ich wczytywanie.

4. Rozszerz aplikację aby mogła trzymać dane kliku osób, posiadała menu, z opcjami, dodaj nowego członka rodziny, sprawdź stan członka rodziny, wyjście.

Page 15: Pyladies 3.0 #12 Object Oriented Programming

Zadania

® 2016 Piotr Dyba PyLadies Poland 3.0

5. Dopisz funkcjonalność, która pozwoli policzyć BMI kota lub psa (podziel normę przez odpowiedni 2,25 i 1,33).

6. Zakładając że aby schudnąć 1 kg trzeba spalić 6000kcal napisz funkcjonalność która powie użytkownikowi ile powinien godzin biegać/jeździć rowerem/uprawiać hobby/grać w szachy/etc. aby być w normie.

7. Zakładając że aby przytyć1 kg trzeba dostarczyć 6000kcal napisz funkcjonalność która powie użytkownikowi ile powinien zjeść czekolady/chleba / ziemniaków więcej aby być w normie.