Temat 6: Programowanie obiektowe (I)
Wstecz; Ostatnia modyfikacja: 16.03.2015
- Programowanie obiektowe (ang. Object-oriented programming)
jest paradygmatem programowania opartym na obiektach - strukturach
danych, które zawierają informacje o danych reprezentowanych jako
atrybuty i funkcje tych obiektów.
- większość obiektowych języków programowania bazuje na klasach,
które określają typy obiektów.
- mówimy, że obiekty są instancjami klas.
- podstawowe założenia paradygmatu obiektowego:
- abstrakcja
- hermetyzacja (enkapsulacja)
- polimorfizm
- dziedziczenie
- przykład klasy Pies
class Pies:
def __init__(self, imie):
self.imie = imie
self.triki = [] #zmienne obiektu
def dodaj_trik(self, trik):
self.triki.append(trik)
przykład błędnej implementacji klasy Pies
class Pies:
# triki = [] # zmienna klasowa
def __init__(self, imie):
self.imie = imie
def dodaj_trik(self, trik):
self.triki.append(trik)
dziedziczenie
class Zwierze(object):
def __init__(self, imie):
self._imie = imie
self._wiek = 0
@property
def wiek(self):
return self._wiek
@wiek.setter
def wiek(self, wiek):
self._wiek = wiek
def daj_glos(self):
raise NotImplementedError("Subclasses should implement this!")
class Pies(Zwierze):
def __init__(self, imie):
super(Pies, self).__init__(imie)
self._triki = []
def dodaj_trik(self, trik):
self._triki.append(trik)
@property
def triki(self):
return self._triki
def daj_glos(self):
return "Hau Hau"
class Kot(Zwierze):
def __init__(self, imie):
super(Kot, self).__init__(imie)
def daj_glos(self):
return "Miau"
UML (Unified Modeling Language)
Ćwiczenie 1: (a) rozbuduj powyższe klasy;
(b) zaprojekuj i zaimplementuj klasę Zoo. (do dokończenia)