面向對象介紹
來自專欄小白Python學習記錄
面向對象編程介紹
想一想請用程序描述如下事情:A同學報道登記信息B同學報道登記信息C同學報道登記信息A同學做自我介紹B同學做自我介紹C同學做自我介紹stu_a = { "name":"A", "age":21, "gender":1, "hometown":"河北"}stu_b = { "name":"B", "age":22, "gender":0, "hometown":"山東"}stu_c = { "name":"C", "age":20, "gender":1, "hometown":"安徽"}def stu_intro(stu): """自我介紹""" for key, value in stu.items(): print("key=%s, value=%d"%(key,value))stu_intro(stu_a)stu_intro(stu_b)stu_intro(stu_c)
考慮現實生活中,我們的思維方式是放在學生這個個人上,是學生做了自我介紹。而不是像我們剛剛寫出的代碼,先有了介紹的行為,再去看介紹了誰。用我們的現實思維方式該怎麼用程序表達呢?
面向過程和面向對象
面向過程:根據業務邏輯從上到下寫代碼
面向對象:將數據與函數綁定到一起,進行封裝,這樣能夠更快速的開發程序,減少了重複代碼的重寫過程
面向過程編程最易被初學者接受,其往往用一長段代碼來實現指定功能,開發過程的思路是將數據與函數按照執行的邏輯順序組織在一起,數據與函數分開考慮。
類和對象
面向對象編程的2個非常重要的概念:類和對象
對象是面向對象編程的核心,在使用對象的過程中,為了將具有共同特徵和行為的一組對象抽象定義,提出了另外一個新的概念——類
類就相當於製造飛機時的圖紙,用它來進行創建的飛機就相當於對象
1、類
人以類聚 物以群分。
具有相似內部狀態和運動規律的實體的集合(或統稱為抽象)。 具有相同屬性和行為事物的統稱類是抽象的,在使用的時候通常會找到這個類的一個具體的存在,使用這個具體的存在。一個類可以找到多個對象
2、對象
某一個具體事物的存在 ,在現實世界中可以是看得見摸得著的。
可以是直接使用的
3、類和對象的關係
小總結:類就是創建對象的模板
4、區別類和對象
賓士汽車 類賓士smart 類 張三的那輛賓士smart 對象狗 類大黃狗 類 李四家那隻大黃狗 對象 水果 類蘋果 類 紅蘋果 類 紅富士蘋果 類 我嘴裡吃了一半的蘋果 對象
5、類的構成
類(Class) 由3個部分構成
類的名稱:類名
類的屬性:一組數據類的方法:允許對進行操作的方法 (行為)
<1> 舉例:
6、抽象的類1)人類設計,只關心3樣東西:
事物名稱(類名):人(Person)屬性:身高(height)、年齡(age)方法(行為/功能):跑(run)、打架(fight)2)狗類的設計類名:狗(Dog)
屬性:品種 、毛色、性別、名字、 腿兒的數量方法(行為/功能):叫 、跑、咬人、吃、搖尾巴
如何把日常生活中的事物抽象成程序中的類?
擁有相同(或者類似)屬性和行為的對象都可以抽像出一個類方法:一般名詞都是類(名詞提煉法)<1> 坦克發射3顆炮彈轟掉了2架飛機坦克--》可以抽象成 類炮彈--》可以抽象成類飛機-》可以抽象成類
<2> 小明在公車上牽著一條叼著熱狗的狗小明--》 人類公車--》 交通工具類熱狗--》 食物類狗--》 狗類
定義一個類
class 類名: 方法列表例子:# 定義類class Car: # 方法 def getCarInfo(self): print(車輪子個數:%d, 顏色%s%(self.wheelNum, self.color)) def move(self): print("車正在移動...")說明:1.定義類時有2種:新式類和經典類,上面的Car為經典類,如果是Car(object)則為新式類2.類名 的命名規則按照"大駝峰"
創建對象
創建對象的格式為: 對象名 = 類名()例子:# 定義類class Car: # 移動 def move(self): print(車在奔跑...) # 鳴笛 def toot(self): print("車在鳴笛...嘟嘟..")# 創建一個對象BMW = Car()
作者贈言:
面向對象變成對於後期的學習非常重要
也是非常重要的一部分,後期的會詳細講解面向對象編程微信公眾號:小白Python學習記錄
上一期答案:
推薦閱讀:
※寫了那麼久代碼了,給大家談談我怎麼理解編程
※C/C++ 中的static關鍵字
※Filedescriptor out of range in select
※乾貨 | 全面深入理解 Python 面向對象
※html5可以做什麼?HTML5市場需求有哪些?