OOP三大特性之封裝

2022-08-20 11:21:15 字數 1249 閱讀 5314

封裝簡介

#

什麼是封裝

對外部隱藏實現細節,並且提供簡單的介面

#封裝的目的

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將類內的函式屬性偽裝成資料屬性 

class

people:

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)

print

(p1.bmi()) 此時需要p1.bmi()呼叫

如果用@property,可以直接p1.bmi呼叫

view code

java 三大特性之封裝

1 封裝 是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。封裝好處 1.將變化隔離 2.便於使用。3.提高重用性。4.提高安全性。封裝原則 將不需要對外提供的內容都隱藏起來。把屬性都隱藏,提供公共方法對其訪問。private 關鍵字 a 用於修飾成員變數和成員方法。b 被修飾的內容在其他類中是...

c 三大特性之封裝

封裝 封裝可以隱藏實現細節,使得 模組化 封裝是把過程和資料報圍起來,對資料的訪問只能通過已定義的介面。在物件導向程式設計上可理解為 把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。資料抽象是指,只向外界提供關鍵資訊,並隱藏其後台的實現細節,即...

JAVA三大特性之 封裝

我們日常使用的電腦主機,把cpu 記憶體 主機板等等都封裝到機箱裡面去。假如沒有機箱的話的出現什麼問題,主機 主機板全部都散落在一處,然後開機沒有開機按鈕,那麼需要我們直接操作接跳線才能把電腦開啟。這樣子的話假如操作不慎的話,會讓機器損壞危險,那麼假如用機箱封裝起來的話,那麼就不需要這樣子做了。體現...