標籤:開發 over override 函數 strong 避免 增加 整理 命名
03_物件導向_day01
- 物件導向的簡稱?
物件導向編程 —— Object Oriented Programming 簡寫 OOP,是一種編程思想或者方式
- 物件導向和面向過程的區別?
面向過程是早期的一個編程思想,所有的步驟從頭到尾逐步實現,把某些功能獨立的代碼塊封裝成函數,然後順序的調用不同的函數,注重步驟與過程,不注重職責分工,適合開發簡單的項目。
物件導向相比函數是一個更大的封裝,物件導向注重對象和職責,不同的對象承擔不同的職責,適合開發比較複雜的項目。
- 類和對象的概念?
類和對象是物件導向的兩大核心概念,
類是對一群具有相同特徵或者行為的事物的一個統稱,是抽象的,不能直接使用。就好比圖紙或者模板,根據這個模板可以建立很多個對象
對象是由類建立出來的一個具體存在,可以直接使用。
- 類和對象的關係?
類是模板,對象是根據類這個模板建立出來的,應該 先有類,再有對象
類只有一個,而對象可以有很多個,不同的對象之間屬性可能會各不相同
類中定義了什麼屬性和方法,對象中就有什麼屬性和方法,不可能多,也不可能少
- 屬性和方法是什嗎?
對對象的特徵描述,通常可以定義成屬性
對象具有的行為(動詞),通常可以定義成方法
- 如何定義類並建立對象?
class 類名:
def 方法1(self, 參數列表):
pass
類名符合大駝峰命名,方法第一個參數必須是self,self 就表示 當前調用方法的對象自己在方法內部,可以通過 self. 訪問對象的屬性,也可以通過 self. 調用其他的對象方法
建立一個對象如下:
物件變數 = 類名() 自動分配記憶體空間,自動初始化方法(定義屬性)
- init()方法的作用
初始化方法,在對象建立的時候會自動執行,主要用來定義類的屬性
- str()方法的作用
返回對象的描述資訊,print 函數輸出物件變數時,能夠列印自訂的內容,必須返回字串
- del()方法的作用
對象被從記憶體中銷毀前,會被自動調用
- 物件導向的三大特點
封裝、繼承、多態
- 如何理解物件導向的封裝?
物件導向編程的第一步,就是要把屬性和方法封裝到類中,外界使用類建立對象,然後讓對象調用方法,對象方法的細節都封裝在類的內部。
03_物件導向_day02
- 私人屬性、私人方法;偽私人屬性和方法
私人屬性:對象不希望公開的屬性,文法是在屬性前面加上屬性名稱
私人方法:對象不希望公開的方法,文法是在方法前面加上方法名
偽私人屬性和方法是指在Python中並沒有真正意義上的私人,而是把屬性或者方法名前面加上了_類名,可以通過_類名__屬性名稱的形式訪問,但是不推薦。
- 繼承的作用,以及文法
繼承實現了代碼的重用,子類可以擁有父類的所有方法和屬性。
class 子類名(父類名):
pass
繼承具有傳遞性,子類可以擁有所有與子類有繼承關係的父類方法和屬性。
- 重寫父類方法,如何調用重寫的父類方法?
當父類的方法實現不能滿足子類需求時,可以對方法進行重寫(override)
重寫父類方法有兩種情況:
覆蓋父類的方法,子類中建立一個跟父類同名的方法;
對父類方法進行擴充,使用super().父類方法調用,另外可以通過父類名.父類方法()的形式去訪問,但是不推薦。
- 多繼承的概念以及文法
多繼承:子類可以擁有多個父類,並且具有所有父類的屬性和方法。多個父類之間應盡量避免同名的方法和屬性。
class 子類名(父類名1, 父類名2...)
pass
- 多態的概念。
不同的子類對象調用相同的父類方法,產生不同的執行結果
多態可以增加代碼的靈活度,以繼承和重寫父類方法為前提,是調用方法的技巧,不會影響到類的內部設計
Python基礎班每日整理(五)