《Python程序設(shè)計(jì)項(xiàng)目案例教程》課件 第5章 面向?qū)ο骭第1頁(yè)
《Python程序設(shè)計(jì)項(xiàng)目案例教程》課件 第5章 面向?qū)ο骭第2頁(yè)
《Python程序設(shè)計(jì)項(xiàng)目案例教程》課件 第5章 面向?qū)ο骭第3頁(yè)
《Python程序設(shè)計(jì)項(xiàng)目案例教程》課件 第5章 面向?qū)ο骭第4頁(yè)
《Python程序設(shè)計(jì)項(xiàng)目案例教程》課件 第5章 面向?qū)ο骭第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第5章面向?qū)ο笸跣幠夸汣ontents2面向?qū)ο缶幊探榻B011.

面向?qū)ο蟮闹饕拍睿?)對(duì)象萬物皆對(duì)象,任何一個(gè)操作或者是業(yè)務(wù)邏輯的實(shí)現(xiàn)都需要一個(gè)實(shí)體來完成,實(shí)體即對(duì)象,對(duì)象由屬性和方法組成。屬性:靜態(tài)的,如體貌特征、年齡等;方法:動(dòng)態(tài)的,如動(dòng)作、行為等。(2)類類是對(duì)一群具有相同特征和行為的事物的統(tǒng)稱。例如,人類具有相同的屬性(姓名、性別、年齡等)和行為(吃飯、睡覺、走路等)。類是邏輯抽象和產(chǎn)生對(duì)象的模板,是一組變量和函數(shù)的特定編排。2.面向?qū)ο蟮娜齻€(gè)特征(1)封裝屬性和方法的抽象,用數(shù)據(jù)和操作數(shù)據(jù)的方法來形成對(duì)象邏輯。保護(hù)了類的屬性和方法,形成一個(gè)對(duì)外可操作的接口。(2)繼承代碼復(fù)用的高級(jí)抽象,用對(duì)象之間的繼承關(guān)系來形成代碼復(fù)用。新定義類能夠幾乎完全使用父級(jí)類的屬性和方法。(3)多態(tài)方法靈活性的抽象,讓對(duì)象的操作更加靈活、更多復(fù)用代碼。不同的對(duì)象調(diào)用同一個(gè)方法會(huì)有不同的表現(xiàn)形態(tài)。類與對(duì)象021.創(chuàng)建類與實(shí)例對(duì)象類的命名通常以大寫字母開頭,創(chuàng)建類的語(yǔ)法格式為:class類名():

屬性

方法創(chuàng)建實(shí)例對(duì)象的語(yǔ)法格式為:實(shí)例對(duì)象名=類名([參數(shù)列表])實(shí)例對(duì)象創(chuàng)建后,就可以使用“.”運(yùn)算符來訪問這個(gè)實(shí)例對(duì)象的屬性和方法。實(shí)例對(duì)象名.屬性名實(shí)例對(duì)象名.方法名([參數(shù)列表])1.創(chuàng)建類與實(shí)例對(duì)象例5-1:創(chuàng)建一個(gè)Animal類,并實(shí)例化一個(gè)動(dòng)物對(duì)象。classAnimal:

name='動(dòng)物'

defintroduce(self):

print("我是一只動(dòng)物。")

a=Animal()

print()

roduce()2.類的屬性與實(shí)例屬性(1)類屬性類的屬性是在創(chuàng)建類時(shí)聲明的變量,有時(shí)不允許在外部訪問或更改,這些不允許在類外部訪問或更改的屬性為私有屬性,可以在類外部進(jìn)行訪問或更改的屬性為公有屬性。定義私有的類屬性,可以在屬性名前加兩個(gè)短下劃線“__”。2.類的屬性與實(shí)例屬性例5-2:修改Animal類的屬性,查看類與實(shí)例的屬性。classAnimal:

name='動(dòng)物'

defintroduce(self):

print("我是一只動(dòng)物。")

a=Animal()

b=Animal()

A="貓"print(A,,)2.類的屬性與實(shí)例屬性(2)實(shí)例屬性實(shí)例的屬性也可以用“實(shí)例名.新屬性”進(jìn)行增加。例5-5:基于Animal類,為實(shí)例對(duì)象a增加weight的屬性。classAnimal:

__name='動(dòng)物'

defintroduce(self):

print(f"我是一只{self.__name}。")

a=Animal()

a.weight=2

print(a.weight)3.魔法方法Python中的魔法方法是一組特殊的方法,以雙下劃線__開頭和結(jié)尾,用于實(shí)現(xiàn)類的特定行為和操作,在類或?qū)ο蟮奶囟ㄊ录l(fā)生時(shí)自動(dòng)執(zhí)行,例如對(duì)象的創(chuàng)建、銷毀、運(yùn)算符重載等。常見的魔法方法有:初始化方法__init__()、創(chuàng)建實(shí)例方法__new__()、析構(gòu)方法__del__()、返回對(duì)象的長(zhǎng)度__len__()、字符串表示方法:_str__()。3.魔法方法(1)__init__()__init__(),稱為構(gòu)造方法(或構(gòu)造函數(shù)),一般用來為對(duì)象屬性設(shè)置初始值或進(jìn)行其它必要的初始化工作,當(dāng)創(chuàng)建一個(gè)類的實(shí)例對(duì)象時(shí),Python解釋器都會(huì)自動(dòng)調(diào)用它。在定義__init__()時(shí),以self作為構(gòu)造函數(shù)的第一個(gè)形式參數(shù),其中函數(shù)體中的屬性前綴是self,即self.實(shí)例屬性。實(shí)例屬性只能通過實(shí)例對(duì)象名訪問,不能通過類名訪問實(shí)例屬性。語(yǔ)法格式如下:def__init__(self,...):

代碼塊3.魔法方法(2)__str__()__str__()是字符串表示方法,常用來改變類的輸出字符串形式。4.類方法和靜態(tài)方法類方法是在對(duì)類的操作方法,可以直接通過類名調(diào)用,不需要?jiǎng)?chuàng)建類的實(shí)例,通常用于實(shí)現(xiàn)與類相關(guān)的操作。類和實(shí)例對(duì)象都可以訪問類方法,但類方法不能訪問實(shí)例變量。類方法的定義語(yǔ)法如下。@classmethoddef類方法名(cls,[形參列表]):

函數(shù)體4.類方法和靜態(tài)方法靜態(tài)方法定義在類的內(nèi)部,只能通過類名或?qū)嵗{(diào)用。它們通常用于執(zhí)行與類無關(guān)的操作。靜態(tài)方法與普通函數(shù)的定義方法相同,可以沒有參數(shù),也不需要傳入self和cls參數(shù)。類和實(shí)例都可以調(diào)用靜態(tài)方法,但靜態(tài)方法不能訪問類變量和實(shí)例變量。靜態(tài)方法的定義語(yǔ)法如下。@staticmethoddef類方法名([形參列表]):

函數(shù)體或者pass繼承、多態(tài)與重寫031.繼承類生萬物,繼承是從已有的類中派生出新的類,新的類能吸收已有類的數(shù)據(jù)屬性和行為,并能擴(kuò)展新的屬性和行為。通過繼承,子類不僅可以重用父類的代碼,還可以對(duì)其進(jìn)行擴(kuò)展和修改。子類能繼承父類的所有公共屬性和公共方法,但不能繼承其私有屬性和私有方法。定義子類的語(yǔ)法為:class子類名(父類名):

類體2.重寫當(dāng)父類方法無法滿足需求,可在子類中定義一個(gè)同名方法覆蓋父類的方法,這就叫方法重寫。重寫的方法必須與父類中的方法具有相同的返回類型、方法名和參數(shù)列表,但可以有不同的實(shí)現(xiàn)。在子類的類體中,要繼承父類的方法時(shí),可以使用:父類名.方法名(self)或super().方法名([參數(shù)列表])3.多態(tài)多態(tài)是指同一個(gè)操作作用于不同的對(duì)象時(shí),可

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論