![中類(lèi)的定義與使用_第1頁(yè)](http://file4.renrendoc.com/view/741bd4ce9f211cfd8daed616af11351f/741bd4ce9f211cfd8daed616af11351f1.gif)
![中類(lèi)的定義與使用_第2頁(yè)](http://file4.renrendoc.com/view/741bd4ce9f211cfd8daed616af11351f/741bd4ce9f211cfd8daed616af11351f2.gif)
![中類(lèi)的定義與使用_第3頁(yè)](http://file4.renrendoc.com/view/741bd4ce9f211cfd8daed616af11351f/741bd4ce9f211cfd8daed616af11351f3.gif)
![中類(lèi)的定義與使用_第4頁(yè)](http://file4.renrendoc.com/view/741bd4ce9f211cfd8daed616af11351f/741bd4ce9f211cfd8daed616af11351f4.gif)
![中類(lèi)的定義與使用_第5頁(yè)](http://file4.renrendoc.com/view/741bd4ce9f211cfd8daed616af11351f/741bd4ce9f211cfd8daed616af11351f5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中類(lèi)的定義與使用演示文稿現(xiàn)在是1頁(yè)\一共有29頁(yè)\編輯于星期六中類(lèi)的定義與使用現(xiàn)在是2頁(yè)\一共有29頁(yè)\編輯于星期六復(fù)習(xí)Python的特點(diǎn)現(xiàn)在是3頁(yè)\一共有29頁(yè)\編輯于星期六本次主要知識(shí)點(diǎn)一
面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)二
定義和使用類(lèi)三
類(lèi)的繼承和多態(tài)四
思考題五
總結(jié)現(xiàn)在是4頁(yè)\一共有29頁(yè)\編輯于星期六一
面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)現(xiàn)在是5頁(yè)\一共有29頁(yè)\編輯于星期六1.3給大家介紹對(duì)象爬跑咬人吃東西睡覺(jué)綠色四條腿10kg有外殼大嘴巴現(xiàn)在是6頁(yè)\一共有29頁(yè)\編輯于星期六對(duì)象=屬性+方法現(xiàn)在是7頁(yè)\一共有29頁(yè)\編輯于星期六1.4面向?qū)ο蟪绦蛟O(shè)計(jì)中的基本概念
(1)對(duì)象(Object):面向?qū)ο蟪绦蛟O(shè)計(jì)思想可以將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在一起,形成一個(gè)實(shí)體,這個(gè)實(shí)體就是對(duì)象。(2)類(lèi)(class):具有相同或相似性質(zhì)的對(duì)象的抽象就是類(lèi)。因此,對(duì)象的抽象是類(lèi),類(lèi)的具體化就是對(duì)象。例如,如果人類(lèi)是一個(gè)類(lèi),則一個(gè)具體的人就是一個(gè)對(duì)象。(3)封裝:將數(shù)據(jù)和操作捆綁在一起,定義一個(gè)新類(lèi)的過(guò)程就是封裝。(4)繼承:類(lèi)之間的關(guān)系,在這種關(guān)系中,一個(gè)類(lèi)共享了一個(gè)或多個(gè)其他類(lèi)定義的結(jié)構(gòu)和行為。繼承描述了類(lèi)之間的關(guān)系。子類(lèi)可以對(duì)基類(lèi)的行為進(jìn)行擴(kuò)展、覆蓋、重定義。如果人類(lèi)是一個(gè)類(lèi),則可以定義一個(gè)子類(lèi)“男人”?!澳腥恕笨梢岳^承人類(lèi)的屬性(例如姓名、身高、年齡等)和方法(即動(dòng)作。例如,吃飯和走路),在子類(lèi)中就無(wú)需重復(fù)定義了。從同一個(gè)類(lèi)中繼承得到的子類(lèi)也具有多態(tài)性,即相同的函數(shù)名在不同子類(lèi)中有不同的實(shí)現(xiàn)。就如同子女會(huì)從父母那里繼承到人類(lèi)共有的特性,而子女也具有自己的特性。(5)方法:也稱(chēng)為成員函數(shù),是指對(duì)象上的操作,作為類(lèi)聲明的一部分來(lái)定義。方法定義了可以對(duì)一個(gè)對(duì)象可以執(zhí)行的操作。(6)構(gòu)造函數(shù):一種成員函數(shù),來(lái)在創(chuàng)建對(duì)象時(shí)初始化對(duì)象。構(gòu)造函數(shù)一般與它所屬的類(lèi)完全同名?,F(xiàn)在是8頁(yè)\一共有29頁(yè)\編輯于星期六二
定義和使用類(lèi)2.1聲明類(lèi)2.2類(lèi)方法2.3使用instance()函數(shù)判斷對(duì)象類(lèi)型現(xiàn)在是9頁(yè)\一共有29頁(yè)\編輯于星期六2.1聲明類(lèi)在Python中,可以使用class關(guān)鍵字來(lái)聲明一個(gè)類(lèi),其基本語(yǔ)法如下:class類(lèi)名:
成員變量
成員函數(shù)同樣,Python使用縮進(jìn)標(biāo)識(shí)類(lèi)的定義代碼?,F(xiàn)在是10頁(yè)\一共有29頁(yè)\編輯于星期六【例2-1】classPerson: defSayHello(self): print("Hello!")現(xiàn)在是11頁(yè)\一共有29頁(yè)\編輯于星期六2.1.1self可以看到,在成員函數(shù)SayHello()中有一個(gè)參數(shù)self。這也是類(lèi)的成員函數(shù)(方法)與普通函數(shù)的主要區(qū)別。類(lèi)的成員函數(shù)必須有一個(gè)參數(shù)self,而且位于參數(shù)列表的開(kāi)頭。self就代表類(lèi)的實(shí)例(對(duì)象)自身,可以使用self引用類(lèi)的屬性和成員函數(shù)。在后面部分還會(huì)結(jié)合實(shí)際應(yīng)用介紹self的使用方法?,F(xiàn)在是12頁(yè)\一共有29頁(yè)\編輯于星期六2.1.2定義類(lèi)的對(duì)象對(duì)象是類(lèi)的實(shí)例。如果人類(lèi)是一個(gè)類(lèi)的話,那么某個(gè)具體的人就是一個(gè)對(duì)象。只有定義了具體的對(duì)象,才能使用類(lèi)。Python創(chuàng)建對(duì)象的方法如下:對(duì)象名=類(lèi)名()例如,下面的代碼定義了一個(gè)類(lèi)Person的對(duì)象p:p=Person()現(xiàn)在是13頁(yè)\一共有29頁(yè)\編輯于星期六【例2-2】classPerson: defSayHello(self): print("Hello!");p=Person()p.SayHello()運(yùn)行結(jié)果如下:Hello!現(xiàn)在是14頁(yè)\一共有29頁(yè)\編輯于星期六2.1.3成員變量【例2-3】
定義一個(gè)字符串類(lèi)MyString,定義成員變量str,并同時(shí)對(duì)其賦初始值。classMyString:str="MyString"defoutput(self): print(self.str)s=MyString()s.output()現(xiàn)在是15頁(yè)\一共有29頁(yè)\編輯于星期六2.1.4Python使用下劃線作為變量前綴和后綴來(lái)指定特殊變量,規(guī)則如下:__xxx__表示系統(tǒng)定義名字。__xxx表示類(lèi)中的私有變量名。類(lèi)的成員變量可以分為兩種情況,一種是公有變量,一種是私有變量。公有變量可以在類(lèi)的外部訪問(wèn),它是類(lèi)與用戶(hù)之間交流的接口。用戶(hù)可以通過(guò)公有變量向類(lèi)中傳遞數(shù)據(jù),也可以通過(guò)公有變量獲取類(lèi)中的數(shù)據(jù)。在類(lèi)的外部無(wú)法訪問(wèn)私有變量,從而保證類(lèi)的設(shè)計(jì)思想和內(nèi)部結(jié)構(gòu)并不完全對(duì)外公開(kāi)。在Python中除了__xxx格式的成員變量外,其他的成員變量都是公有變量?,F(xiàn)在是16頁(yè)\一共有29頁(yè)\編輯于星期六2.1.5構(gòu)造函數(shù)構(gòu)造函數(shù)是類(lèi)的一個(gè)特殊函數(shù),它擁有一個(gè)固定的名稱(chēng),即__init__(注意,函數(shù)名是以?xún)蓚€(gè)下劃線開(kāi)頭和兩個(gè)下劃線結(jié)束的).當(dāng)創(chuàng)建類(lèi)的對(duì)象實(shí)例時(shí)系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù),通過(guò)構(gòu)造函數(shù)對(duì)類(lèi)進(jìn)行初始化操作?,F(xiàn)在是17頁(yè)\一共有29頁(yè)\編輯于星期六【例2-4】classMyString: def__init__(self): self.str="MyString" defoutput(self): print(self.str);s=MyString()s.output()現(xiàn)在是18頁(yè)\一共有29頁(yè)\編輯于星期六【例2-5】classUserInfo: def__init__(self,name,pwd): self.username=name self._pwd=pwd defoutput(self): print("用戶(hù):"+self.username+"\n密碼:"+self._pwd);u=UserInfo("admin","123456")u.output()現(xiàn)在是19頁(yè)\一共有29頁(yè)\編輯于星期六2.2類(lèi)方法類(lèi)方法是Python的一個(gè)新概念。類(lèi)方法具有如下特性:(1)與靜態(tài)方法一樣,類(lèi)方法可以使用類(lèi)名調(diào)用類(lèi)方法。(2)與靜態(tài)方法一樣,類(lèi)成員方法也無(wú)法訪問(wèn)實(shí)例變量,但可以訪問(wèn)類(lèi)的靜態(tài)變量。(3)類(lèi)方法需傳入代表本類(lèi)的cls參數(shù)。現(xiàn)在是20頁(yè)\一共有29頁(yè)\編輯于星期六使用裝飾符@staticmethod定義類(lèi)方法class類(lèi)名: @classmethod def類(lèi)方法名(cls):
方法體現(xiàn)在是21頁(yè)\一共有29頁(yè)\編輯于星期六2.3使用instance()函數(shù)判斷對(duì)象類(lèi)型使用instance()函數(shù)可以用來(lái)檢測(cè)一個(gè)給定的對(duì)象是否屬于(繼承于)某個(gè)類(lèi)或類(lèi)型,如果是則返回True;否則返回False。其使用方法如下:isinstance(對(duì)象名,類(lèi)名或類(lèi)型名)如果對(duì)象名屬于指定的類(lèi)名或類(lèi)型名,則instance()函數(shù)返回True,否則返回False?,F(xiàn)在是22頁(yè)\一共有29頁(yè)\編輯于星期六三類(lèi)的繼承和多態(tài)繼承和多態(tài)是面向?qū)ο蟪绦蛟O(shè)計(jì)思想的重要機(jī)制。類(lèi)可以繼承其他類(lèi)的內(nèi)容,包括成員變量和成員函數(shù)。而從同一個(gè)類(lèi)中繼承得到的子類(lèi)也具有多態(tài)性,即相同的函數(shù)名在不同子類(lèi)中有不同的實(shí)現(xiàn)。就如同子女會(huì)從父母那里繼承到人類(lèi)共有的特性,而子女也具有自己的特性。在OOP程序設(shè)計(jì)中,當(dāng)我們定義一個(gè)class的時(shí)候,可以從某個(gè)現(xiàn)有的class繼承,新的class稱(chēng)為子類(lèi)(Subclass),而被繼承的class稱(chēng)為基類(lèi)、父類(lèi)或超類(lèi)(Baseclass、Superclass)?,F(xiàn)在是23頁(yè)\一共有29頁(yè)\編輯于星期六3.1繼承classAnimal(object):defrun(self):print('Animalisrunning...')classDog(Animal):passclassCat(Animal):pass現(xiàn)在是24頁(yè)\一共有29頁(yè)\編輯于星期六dog=Dog()dog.run()cat=Cat()cat.run()運(yùn)行結(jié)果如下:Animalisrunning...Animalisrunning...現(xiàn)在是25頁(yè)\一共有29頁(yè)\編輯于星期六繼承有什么好處?最大的好處是子類(lèi)獲得了父類(lèi)的全部功能。由于Animial實(shí)現(xiàn)了run()方法,因此,Dog和Cat作為它的子類(lèi),什么事也沒(méi)干,就自動(dòng)擁有了run()方法?,F(xiàn)在是26頁(yè)\一共有29頁(yè)\編輯于星期六3.2多態(tài)當(dāng)我們定義一個(gè)class的時(shí)候,我們實(shí)際上就定義了一種數(shù)據(jù)類(lèi)型。我們定義的數(shù)據(jù)類(lèi)型和Python自帶的數(shù)據(jù)類(lèi)型,比如str、list、dict沒(méi)什么兩樣。舉例如下:a=list()#a是list類(lèi)型b=Animal()#b是Animal類(lèi)型c=Dog()#c是Dog類(lèi)型現(xiàn)在是27頁(yè)\一共有29頁(yè)\編輯于星期六>>>isinstance(a,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公司注銷(xiāo)委托代理服務(wù)協(xié)議
- 2025年信用擔(dān)保與抵押合同
- 2025年農(nóng)副產(chǎn)品直銷(xiāo)業(yè)務(wù)協(xié)議
- 2025年農(nóng)業(yè)用地承包權(quán)抵債協(xié)議范本
- 2025年優(yōu)惠協(xié)議價(jià)格
- 2025年會(huì)議室重構(gòu)性合作協(xié)議
- 2025年光通信電纜項(xiàng)目規(guī)劃申請(qǐng)報(bào)告范文
- 2025年信息安全集成項(xiàng)目合作協(xié)議
- 2025年個(gè)人財(cái)產(chǎn)抵押巨額借款合同示范文本
- 2025年企業(yè)電器租賃合同
- 最新小學(xué)二年級(jí)口算及豎式計(jì)算練習(xí)題
- 校園信息化設(shè)備管理檢查表
- 新版抗拔樁裂縫及強(qiáng)度驗(yàn)算計(jì)算表格(自動(dòng)版)
- API SPEC 5DP-2020鉆桿規(guī)范
- 創(chuàng)新思維課件(完整版)
- DB34∕T 4161-2022 全過(guò)程工程咨詢(xún)服務(wù)管理規(guī)程
- 注塑成型工藝參數(shù)知識(shí)講解
- 安全生產(chǎn)專(zhuān)業(yè)化管理
- 初中生成長(zhǎng)檔案模板
- 教育系統(tǒng)績(jī)效工資分配方案(共6頁(yè))
- GB_T 17468-2019 電力變壓器選用導(dǎo)則(高清正版)
評(píng)論
0/150
提交評(píng)論