2一、面向對象

面向對象

類和對象

  • 面向過程和麪向對象的編程
    • 面向過程的編程:函數式編程,C程序等
    • 面向對象的編程:C++,Java,Python等
  • 類和對象:是面向對象中的兩個重要概念
    • 類:是對事物的抽象,好比:汽車模型
    • 對象:是類的一個實例,好比:QQ轎車,大客車
  • 範例說明
    • 汽車模型能夠對汽車的特徵和行爲進行抽象,而後能夠實例化一臺真實的汽車實體出來

Python類定義

  • Python類的定義
    • 使用class關鍵字定義一個類,而且類名的首字母要大寫
    • 當程序員須要建立的類型不能用簡單類型表示時就須要建立類
    • 類把須要的變量和函數組合在一塊兒,這種包含也稱之爲「封裝」
  • Python類的結構python

    class 類名:
          成員變量
          成員函數
    
      class MyClass():
          first = 123
          def fun(self):
              print "I am function"
  • 對象的建立
    • 建立對象的過程稱之爲實例化;當一個對象被建立後,包含三個方面的特性:對象的句柄、屬性和方法。
      • 句柄用於區分不一樣的對象
      • 對象的屬性和方法與類中的成員變量和成員函數對應程序員

        if __name__ == "__main__":
              myClass = MyClass()     #建立類的一個實例
  • 構造函數__init__web

    class Person:
          def __init__(self, name, lang, website):
              self.name = name
              self.lang = lang
              self.website = website
  • self是一個很神奇的參數
    • self指向類的一個實例,當實例調用方法時,self就指向這個調用的方法的實例
  • 子類、父類和繼承編程

    # 抽象形狀類
      class Shape:
          # 類的屬性
          edge = 0
          # 構造函數
          def __init__(self, edge):
              self.edge = edge
          # 類的方法
          def getEdge(self):
              return self.edge
          # 抽象方法  
          def getArea(self):
              pass
    
      #三角形類,繼承抽象形狀類
      class Triangle(Shape):
          width = 0
          height = 0
          # 構造函數
          def __init__(self, width, height):
              #調用父類構造函數
              Shape.__init__(self, 3)
              self.width = width
              self.height = height
          #重寫方法
          def getArea(self):
              return self.width * self.height / 2
    
      #四邊形類,繼承抽象形狀類       
      class Rectangle(Shape):
          width = 0
          height = 0
          # 構造函數
          def __init__(self, width, height):
              #調用父類構造函數
              Shape.__init__(self, 4)
              self.width = width
              self.height = height
          #重寫方法
          def getArea(self):
              return self.width * self.height
    
      triangle = Triangle(4,5);
      print triangle.getEdge()
      print triangle.getArea()
    
      rectangle = Rectangle(4,5);
      print rectangle.getEdge()
      print rectangle.getArea()
  • python支持多繼承,但不推薦使用數組

相關文章
相關標籤/搜索