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)