資源簡介 (共21張PPT)Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.少兒編程課面向對象編程程序設計的發展過程先來了解下程序設計(編程語言)的發展過程非結構化程序設計結構化程序設計面向對象程序設計類和對象的基本概念想要理解面向對象,首先需要了解面向對象中最基本的兩個概念:類與對象這是一個人嗎?這是程序員嗎?想要理解面向對象,首先需要了解面向對象中最基本的兩個概念:類與對象這是一輛車嗎?這是一只鳥嗎?那么什么是類和對象呢?類:你心中對某一些“東西”的定義和分類:比如人(類)、車、鳥(類)、程序員對象:這些東西中的某個個體,比如喬布斯、樓下那輛車、窗體上那只鳥等,就稱為對象思考一下:先有類還是先有對象呢?先來看現實世界中,是先有類的概念還是先有對象的概念也就是說,人不是從出生就知道總類的概念的,這是一個學習的過程判斷從具體的鳥,到腦海中有清晰的鳥的形象的過程,就稱為抽象對象類抽象抽象抽象是從眾多的事物中抽取出共同的、本質性的特征,而舍棄其非本質的特征。例如蘋果、香蕉、生梨、葡萄、桃子等,它們共同的特性就是水果。得出水果概念的過程,就是一個抽象的過程。于是我們可以得出結論:在現實世界中,先有對象,對象的共同特點被抽象成類的概念:而對于計算機中的面向對象的編程語言(如python)來說,則剛好相反需要先定義類,也即定義某一類東西的全部特征,然后使用這個類去創建一個個的個體(對象)Python中的面向對象接下來我們就來看看,Python中面向對象編程如何實現1首先定義一個類,Python中類的定義使用class關鍵字,后面跟類名class Person():2接著,思考一下,類里面寫什么內容呢?以人類為例,類既然起到模板的作用,那么就應該包含全人類的共同特征,具體來說包含兩點:靜態特征:屬性動態行為:函數/方法類類的名稱可以任意,采用駝峰命名法,也即每個單詞的首字母大寫,如Book、Person、WildAnimal等下面我們把類中屬性的定義補充完整并定義一個對象出來:1在類中,加入__init__方法class Person:def __init__(self, name, age):self.name = nameself.age = age這里的__init__方法是一個特殊的方法(init是單詞初始化initialization的省略形式)在使用類創建對象之后被執行,用于給新創建的對象初始化屬性用。下面我們把類中屬性的定義補充完整并定義一個對象出來:2初始化屬性的語句就是self.name = name這種了,這一句不太好理解,我們把它改編一下就好理解了:def __init__(self, n, a):self.name = nself.age = a首先這是一個方法,方法的形參有self,n和a三個。這個self,表示對象本身,誰調用,就表示誰(這句話不好理解,先記住,我們后面分析)。語法上,類中的方法的第一個參數都是self,這是和普通方法區別的地方。這里self.name = n和self.age = a表示將外部傳來的n和a,賦值給了self對象的name和age屬性。這里的n和a,其實叫什么都可以,但是會有個問題:一般我們調用方法的時候,想自動提示一下或者查看文檔看一下這個方法的參數要求,如果形參名都是n、a、m、i這些,會讓人摸不著頭腦,不知道到底該傳入什么樣的實參。因為這里我們傳入實參是為了給屬性賦值,為了能見名知意,將形參的名字定義的跟屬性一致,調用者就知道該怎么傳參了。所以才有了上面的寫法。下面我們把類中屬性的定義補充完整并定義一個對象出來:3接著就可以創造一個對象出來了:這句話就創建出來了一個具體的人,并且給這個人起了個名字叫小明,指定了小明的年齡為20,并且將小明這個對象賦值給了變量p,此時p就表示小明這個人(對象)p = Person('小明', 20)既然我們是編程世界的神,當然想造什么樣的人都可以1比如造一個200歲的叫杰拉考的人:p = Person(‘杰拉考', 200)這句話后面的Person('杰拉考', 200)用于創建出了一個對象(人),并且調用了__init__(self,name,age)方法完成了該人的屬性的初始化,杰拉考賦值給了name,200賦值給了age屬性。那self呢?self不需要傳參,上面我們說過,self,表示對象本身,誰調用,就表示誰,此時的self就表示你Person('杰拉考', 200)創造出來的那個對象,也即是p。也即,我們創造出了p,然后給p的屬性賦了值,此時p就表示擁有屬性值之后的那個人。2可以使用點.來調用對象的屬性,比如輸出p的名字和年齡class Person:def __init__(self, name, age):self.name = nameself.age = agep = Person('杰拉考', 200)print(p.name)print(p.age)接著我們再來說說類中的動態行為,也即方法/函數1在Person類中定義一個方法,用于自我介紹2完整代碼如下:def desc(self):print("我叫%s,今年%d歲" %(self.name, self.age))在類的內部,訪問自己的屬性和方法,都需要通過self,self就是外部對象在類內部的表示,此時可以使用p調用該方法class Person:def __init__(self, name, age):self.name = nameself.age = agedef desc(self):print("我叫%s,今年%d歲" % (self.name, self.age))p = Person('杰拉考', 200)# 調用自我介紹方法 desc方法中的self就是外部的這個pp.desc()當前desc方法中的self,就是外部的那個對象p,如果我再定義了一個對象p2,那么p2調用desc時,desc中的self就表示p2這個對象。正所謂:誰調用,就表示誰總結Summary面向對象中類和對象概念的理解√Python中類的定義和對象的創建√__init__()函數和self關鍵字的理解√Thanks! 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫