封裝簡介
#什麼是封裝
對外部隱藏實現細節,並且提供簡單的介面
#封裝的目的
1、提高安全性(封裝資料)
2、隔離複雜度(封裝方法)
#如何封裝
使用特殊語法,給要隱藏的變數前加雙下劃線(__)
#其實這僅僅這是一種變形操作且僅僅只在類定義階段發生變形
#類中所有雙下劃線開頭的名稱如__x都會在類定義時自動變形成:_類名__x的形式:
class
a:
__n=0 #
類的資料屬性就應該是共享的,但是語法上是可以把類的資料屬性設定成私有的如__n,會變形為_a__n
def__init__
(self):
self.
__x=10 #
變形為self._a__x
def__foo(self): #
變形為_a__foo
print('
from a')
defbar(self):
self.
__foo() #
只有在類內部才可以通過__foo的形式訪問到.
#a._a__n是可以訪問到的,
#這種,在外部是無法通過__x這個名字訪問到。
#為什麼要用property
物件再去使用的時候obj.name,根本無法察覺自己的name是執行了乙個函式然後計算出來的,
為了統一私有屬性和普通屬性的訪問方式,使用property將類內的函式屬性偽裝成資料屬性
classview codepeople:
def__init__
(self,name,weight,height):
self.name=name
self.weight=weight
self.height=height
#@property
defbmi(self):
return self.weight / (self.height**2)
p1=people('
egon
',75,1.85)
(p1.bmi()) 此時需要p1.bmi()呼叫
如果用@property,可以直接p1.bmi呼叫
java 三大特性之封裝
1 封裝 是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。封裝好處 1.將變化隔離 2.便於使用。3.提高重用性。4.提高安全性。封裝原則 將不需要對外提供的內容都隱藏起來。把屬性都隱藏,提供公共方法對其訪問。private 關鍵字 a 用於修飾成員變數和成員方法。b 被修飾的內容在其他類中是...
c 三大特性之封裝
封裝 封裝可以隱藏實現細節,使得 模組化 封裝是把過程和資料報圍起來,對資料的訪問只能通過已定義的介面。在物件導向程式設計上可理解為 把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。資料抽象是指,只向外界提供關鍵資訊,並隱藏其後台的實現細節,即...
JAVA三大特性之 封裝
我們日常使用的電腦主機,把cpu 記憶體 主機板等等都封裝到機箱裡面去。假如沒有機箱的話的出現什麼問題,主機 主機板全部都散落在一處,然後開機沒有開機按鈕,那麼需要我們直接操作接跳線才能把電腦開啟。這樣子的話假如操作不慎的話,會讓機器損壞危險,那麼假如用機箱封裝起來的話,那麼就不需要這樣子做了。體現...