c 物件導向之封裝

2021-10-03 16:15:54 字數 2779 閱讀 3712

該系列是本人對c++的物件導向的知識點的筆記整理。

c++物件導向的三大特徵:封裝、繼承、多型。

類包括屬性和方法。在設計類時,屬性和方法寫在一起, 屬性和方法統稱為成員,屬性稱為成員屬性或者成員變數,行為稱為成員函式或者成員方法

類在設計時,可以把屬性和方法放在不同的許可權下,可以對它們加以控制。

訪問許可權分為三種:

(1)公共許可權:public 特點:成員類內可以訪問,類外可以訪問。

(2)保護許可權:protected 特點:成員類內可以訪問,類外不可以訪問,子類可以訪問父類中保護的內容。

(3)私有許可權:private 特點:成員類內可以訪問,類外不可以訪問,子類不可以訪問父類的私有內容。

注意:類內的成員如果不設定指定的訪問許可權,則***系統預設設定的訪問許可權為private***。

以下是乙個關於定義立方體類的例子:

class

cube

double

getl()

double

getw()

double

geth()

//獲取立方體面積

double

calculatearea()

//獲取立方體體積

double

calculatevolume()

};

在設計類時,可以把類的宣告放在乙個標頭檔案(***.h)中,把類的成員函式的實現放在乙個***.cpp檔案中。

以點和圓的關係作為例子:

定義乙個點類,點是指xy座標系上的點,用(x,y)表示

class

point

//獲取x座標

intgetx()

//設定y座標

void

sety

(int y)

//獲取y座標

intgety()

};

定義乙個圓類,圓的成員屬性有圓的圓點和半徑

class

circle

//獲取半徑

intgetr()

//設定圓心

void

setcenter

(point center)

//獲取圓心

point getcenter()

};

把point類的宣告放在point.h中,把point類的成員函式的實現放在point.cpp中

#pragma once

//防止標頭檔案重複包含

#include

using

namespace std;

//點類

class

point

;

#include

"point.h"

//設定x座標

void point::

setx

(int x)

//設定類作用域

//獲取x座標

int point::

getx()

//設定y座標

void point::

sety

(int y)

//獲取y座標

int point::

gety()

把circle類的宣告放在circle.h中,把circle類的成員函式的實現放在circle.cpp中

#pragma once

#include

#include

"point.h"

//circle類內使用了point類,所以要引入point.h

//圓類的宣告

class

circle

;

#include

"circle.h"

//設定半徑

void circle::

setr

(int r)

//獲取半徑

int circle::

getr()

//設定圓心

void circle::

setcenter

(point center)

//獲取圓心

point circle::

getcenter()

主函式和全域性函式部分在main.cpp

#include

#include

#include

#include

"circle.h"

//圓類

#include

"point.h"

//點類

using

namespace std;

//判斷點和圓的關係

void

isincircle

(circle& c, point& p)

//引用型別

else

if(dis > c_dis)

else

}int

main()

物件導向之封裝

定義 影藏事物的屬性和實現的細節,僅對外提供公共的訪問方式 封裝的好處 1.隱藏了事物的細節 2.提高了 的復用性 3.提高了安全性 封裝的實現 使用private關鍵字進行修飾,被private修飾的成員只能在本類中使用 setter和getter 封裝需要搭配set和get方法 set 設定器 ...

物件導向之封裝

封裝之如何隱藏屬性 在變數名和方法名之前加雙下劃線 外部就訪問不到 classa x 1def init self,name self.name name def bar self print self.name a.x 外部無法訪問這其實是在類定義的時候,將變數名和函式名進行了變形,我們可以列印類...

物件導向之 封裝

封裝 就是把屬性或者方法裝起來 廣義 把屬性和方法裝起來,外面不能直接呼叫了,要通過類的名字來呼叫 狹義 把屬性和方法藏起來,外面不能呼叫,只能在內部偷偷呼叫 class user def init self,name,passwd self.usr name self.pwd passwd 私有的...