c 學習筆記七 物件導向三大特性之封裝

2021-10-10 08:23:54 字數 2116 閱讀 2230

一、封裝的意義

封裝是c++物件導向三大特性之一

封裝的意義:

封裝意義一:

​ 在設計類的時候,屬性和行為寫在一起,表現事物

語法:class 類名;

示例1:設計乙個圓類,求圓的周長

示例**:

#include

"iostream"

using

namespace std;

//圓周率

const

double pi =

3.14

;//1、封裝的意義

//將屬性和行為作為乙個整體,用來表現生活中的事物

//封裝乙個圓類,求圓的周長

//class代表設計乙個類,後面跟著的是類名

class

circle};

intmain()

示例2:設計乙個學生類,屬性有姓名和學號,可以給姓名和學號賦值,可以顯示學生的姓名和學號

#include

"iostream"

using

namespace std;

//學生類

class

student

void

setid

(int id)

void

showstudent()

public

: string m_name;

int m_id;};

intmain()

封裝意義二:

類在設計時,可以把屬性和行為放在不同的許可權下,加以控制

訪問許可權有三種:

public 公共許可權

protected 保護許可權

private 私有許可權

#include

"iostream"

using

namespace std;

//三種許可權

//公共許可權 public 類內可以訪問 類外可以訪問

//保護許可權 protected 類內可以訪問 類外不可以訪問

//私有許可權 private 類內可以訪問 類外不可以訪問

class

person};

intmain()

二、struct和class區別

在c++中,struct和class非常相似,也可以像class那樣對一些屬性和行為進行封裝,也可以有繼承,那麼兩者有什麼區別呢?

在c++中 struct和class最大的區別就在於預設的訪問許可權不同預設的繼承許可權也不同

區別:三、成員屬性設定為私有

優點1:將所有成員屬性設定為私有,可以自己控制讀寫許可權

優點2:對於寫許可權,我們可以檢測資料的有效性

#include

"iostream"

using

namespace std;

class

person

string getname()

//獲取年齡

intgetage()

//設定年齡

void

setage

(int age)

m_age = age;

}//情人設定為只寫

void

setlover

(string lover)

private

: string m_name;

//可讀可寫 姓名

int m_age;

//可讀可寫 年齡

string m_lover;

//只寫 情人};

intmain()

參考:

C 物件導向三大特性

封裝就是將成員變數和成員方法等集合在乙個個的類中,通過給類及類中的成員變數 屬性和方法設定不同的訪問修飾符 public protected internal protected internal private 來控制它們的作用範圍,使用時呼叫它的方法,或者給它的變數賦值。封裝的意義在於保護或者防...

物件導向三大特性之繼承

1 author kelvin2 date 2019 1 16 18 5734 class father 5 money 100067 def init self,name 8print 父類的init方法.9 self.name name 1011 defteach self 12print s ...

物件導向三大特性之封裝

物件導向的三大基本特徵 封裝 封裝是指將物件的實現細節隱藏起來,然後通過公共的方法來向外暴露該物件的事功能。繼承 即城市物件導向實現軟體服用的重要手段,當子類繼承父類後,子類是一種特殊的父類,能直接或間接獲得父類的成員。多型 多型是可以直接把子類物件賦給父類變數,但是執行時依然表現出子類的行為特徵,...