1.面向對象 面向對象是一種對現實世界理解和抽象的方法,是電腦編程技術發展到一定階段後的產物。 2.類(class): 一個類即是對一類擁有相同屬性的對象的抽象、藍圖、原型。在類中定義了這些對象的都具備的屬性(variables(data))、共同的方法 3.對象(Object): 一個對象即是一 ...
1.面向對象
面向對象是一種對現實世界理解和抽象的方法,是電腦編程技術發展到一定階段後的產物。
2.類(class):
一個類即是對一類擁有相同屬性的對象的抽象、藍圖、原型。在類中定義了這些對象的都具備的屬性(variables(data))、共同的方法
3.對象(Object):
一個對象即是一個類的實例化後實例,一個類必須經過實例化後方可在程式中調用,一個類可以實例化多個對象,每個對象亦可以有不同的屬性,就像人類是指所有人,每個人是指具體的對象,人與人之前有共性,亦有不同
4.特性
封裝
在類中對數據的賦值、內部調用對外部用戶是透明的,這使類變成了一個膠囊或容器,裡面包含著類的數據和方法
繼承
一個類可以派生出子類,在這個父類里定義的屬性、方法自動被子類繼承
多態
多態是面向對象的重要特性,簡單點說:“一個介面,多種實現”,指一個基類中派生出了不同的子類,且每個子類在繼承了同樣的方法名的同時又對父類的方法做了不同的實現,這就是同一種事物表現出的多種形態。
5.構造函數
在實例化時做一些類的初始化的工作
實例變數:self.a = a
實例變數(靜態屬性),作用域為實例本身
例子
1 class Person: 2 n = 123 #類變數 3 4 def __init__(self,name,ability): 5 #構造函數 6 7 self.name = name #實例化變數(靜態屬性) ,作用域為實例化本身 8 self.ability = ability 9 10 def eat(self): # 類方法 功能(動態屬性) 11 print('I will eat something ! ') 12 13 def run(self): 14 print('I will runing !') 15 16 def sleep(self): 17 print('I will sleep !') 18 19 def doing(self): 20 print('I am %s'% self.ability) 21 22 r1 = Person('張三','dancing') 23 24 r1.sleep() 25 r1.run() 26 r1.eat() 27 r1.doing() 28 print(r1.n)
結果
I will sleep ! I will runing ! I will eat something ! I am dancing 1234