物聯(lián)網Python編程實戰(zhàn) 課件 4.面向對象三大特性-封裝_第1頁
物聯(lián)網Python編程實戰(zhàn) 課件 4.面向對象三大特性-封裝_第2頁
物聯(lián)網Python編程實戰(zhàn) 課件 4.面向對象三大特性-封裝_第3頁
物聯(lián)網Python編程實戰(zhàn) 課件 4.面向對象三大特性-封裝_第4頁
物聯(lián)網Python編程實戰(zhàn) 課件 4.面向對象三大特性-封裝_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

面向對象三大特性江蘇電子職業(yè)學院Python物聯(lián)網01封裝面向對象封裝概念所有屬于同一個類的對象都具有相同的特性和操作面向對象程序設計有三大特性:封裝、繼承、多態(tài),其最重要的一個特性就是封裝。一個軟件系統(tǒng)運行就是不同的類(模塊)相互作用的結果。為了保證軟件系統(tǒng)運行的穩(wěn)定性、可擴展性我們希望做到模塊內部高內聚、模塊間低耦合。封裝面向對象程序設計,通過類把屬性和行為整合到一塊,一個類就是一個模塊。為了實現(xiàn)高內聚低耦合的特點,封裝到對象或者類中的屬性或方法,我們還可以嚴格控制對它們的訪問權限。Python中可以有隱藏屬性和方法。我們可以隱藏重要的屬性和操作,提供接口方法對外提供服務,從而隱藏了內部的復雜邏輯。面向對象封裝所有屬于同一個類的對象都具有相同的特性和操作classFoo:def__init__(self,name,age):=nameself.age=agedefinfor(self):print("name:{},age:{}".format(,self.age))……obj1=Foo('wupeiqi',18)r()屬性name,age和方法infor被封裝到了類Foo中。類Foo作為一個整體對外提供服務或者對外尋求服務。通過創(chuàng)建對象,實參‘wupeiqi’,18被封裝到了對象obj1中。訪問限制所有屬于同一個類的對象都具有相同的特性和操作訪問限制-私有屬性Python采用雙下劃線開頭的方式將屬性隱藏起來(設置成私有的)。在類的外部不能直接訪問雙下劃線開頭的私有屬性。但是在類內部是可以直接訪問雙下劃線開頭的私有屬性的。classStudent:

def__init__(self,inname,inage):

self.name=inname

self.__age=inage#將age設為私有__age

definfor(self):#類內部可以訪問私有屬性

print("name:{},age:{}".format(self.name,self.__age))

obj1=Student('wupeiqi',18)

r()

print()#能訪問到

print(obj1.__age)#訪問不到。

r()注意:不能通過=“aaaa”或obj1.__age=11去驗證,不會報錯,因為Python支持添加屬性。訪問限制所有屬于同一個類的對象都具有相同的特性和操作訪問限制-私有屬性將數據隱藏起來就限制了類外部對數據的直接操作。此時類內應該提供相應的接口來允許類外部間接地操作數據。我們在設計接口時可以添加邏輯來對數據的操作進行嚴格地控制。在Python中,類似__xxx__的變量,以雙下劃線開頭,并且以雙下劃線結尾的,是特殊變量,是可以直接訪問的,不是私有變量。classStudent:def__init__(self,inname,inage):=innameself.__age=inagedefinfor(self):print("name:{},age:{}".format(,self.__age))#對外提供設置age接口,并附加類型檢查的邏輯

defset_info(self,upage):ifisinstance(upage,int):self.__age=upageelse:raiseTypeError("age必須是整數")s1=Student("wulei",19)r()s1.set_info(20)r()訪問限制所有屬于同一個類的對象都具有相同的特性和操作訪問限制-私有屬性classATM:def__card(self):#插卡,隱藏函數

print('插卡')def__auth(self):#身份認證,隱藏函數

print('用戶認證')def__input(self):#輸入金額,隱藏函數

print('輸入取款金額')def__print_bill(self):#打印小票,隱藏函數

print('打印賬單')def__take_money(self):#取錢,隱藏函數

print('取款')def__take_exit(self):#退出,隱藏函數

print('退出')defwithdraw(self):#取款功能

self.__card()self.__auth()self.__input()self.__print_bill()self.__take_money()self.__take_exit()obj=ATM()obj.withdraw()同樣在方法前面加雙下劃線,則該方法就被隱藏,如__init__()方法。就是一個私有方法,外部不能直接

溫馨提示

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

評論

0/150

提交評論