'一、物件導向基礎概念、類和例項介紹''1.定義:物件導向程式設計——object oriented programming,簡稱oop,是一種程式設計思想。oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的函式。'
'python中,所有資料型別都可以視為物件,當然也可以自定義物件。自定義的物件資料型別就是物件導向中的類(class)的概念。'
'2.設計思想:物件導向的設計思想是抽象出class,根據class建立instance。'
'3.特點:資料封裝、繼承和多型是物件導向的三大特點'
'物件導向最重要的概念就是類(class)和例項(instance),必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的「物件」,每個物件都擁有相同的方法,但各自的資料可能不同。'
class student(object): #class後面緊接著是類名,即student,類名通常是大寫開頭的單詞,緊接著是(object),表示該類是從哪個類繼承下來的,通常,如果沒有合適的繼承類,就使用object類,這是所有類最終都會繼承的類。
'定義乙個學生類'
def __init__(self,name,age,score): #__init__(構造方法)方法的第乙個引數永遠是self,表示建立的例項本身,因此,在__init__方法內部,就可以把各種屬性繫結到self,因為self就指向建立的例項本身。
self.__name=name #通過在變數名前面加兩個下劃線可以將市裡的便利變成私有變數,外部無法訪問,無法直接修改私有變數的值
self.age=age
self.__score=score
def print_info(self): #和普通的函式相比,在類中定義的函式只有一點不同,就是第乙個引數永遠是例項變數self,並且,呼叫時,不用傳遞該引數。除此之外,類的方法和普通函式沒有什麼區別,所以,你仍然可以用預設引數、可變引數、關鍵字引數和命名關鍵字引數。
'資料封裝'
print(self.__name,self.age,self.__score) #student類的內部定義訪問資料的函式,這樣,就把「資料」給封裝起來了。這些封裝資料的函式是和student類本身是關聯起來的,我們稱之為類的方法
def get_score(self): #方法是與例項繫結的函式,和普通函式不同,方法可以直接訪問例項的資料;
print('{}\'s score is {}'.format(self.__name,self.__score))
def main():
stu1=student('tom',19,90) #類是建立例項的模板,而例項則是乙個乙個具體的物件,各個例項擁有的資料都互相獨立,互不影響;
stu2=student('lisa',18,87)
stu2.id=123 #和靜態語言不同,python允許對例項變數繫結任何資料,也就是說,對於兩個例項變數,雖然它們都是同乙個類的不同例項,但擁有的變數名稱都可能不同:
print(stu2.id)
stu1.print_info()
stu1.age=190
print(stu1.age)
# print(stu1._studeng__name) #私有變數可以通過這種方式來訪問但是不推薦
# a=stu1.__name
# print(a)
stu1.get_score()
if __name__ == '__main__':
main()
物件導向學習總結
物件導向繼承 繼承 是指以個類為父類,另乙個類可以做為其子類,子類在繼承了父類的屬性 方法,可以進一步操作。語法 extends 子類 extends 父類 public 公共的 private 私有的,protected保護的,private保護,你可以繼承,但不可以訪問和操作。對於protect...
學習物件導向總結
實現多型的步驟 1 找出父類 2 找出所有子類都具有的相同方法 但是實現方式各不一樣 3 將這個方法在父類中標記為虛方法或抽象方法 4 在子類中重寫 5 讓父類變數指向子類物件 父類型別作為引數,作為返回值 6 呼叫父類變數的虛方法 抽象方法 虛方法 繼承 多型 封裝 1 抽象用abstrace修飾...
物件導向設計學習總結
設計階段 實現階段 總結軟體設計是軟體工程中技術方向部分,軟體工程大方向上劃分,包含管理方向和軟體設計方向。管理方向,主要指軟體迭代 資源管理等專案進度 巨集觀質量把控方面,涉及理論知識,書籍,如 敏捷迭代開發 管理者指南 敏捷軟體開發的組織模式 軟體專案管理 乙個統一的框架 oo專案求生法則 該總...