C 特性之封裝性 《C primer》

2021-06-27 17:57:48 字數 1601 閱讀 8740

封裝性:封裝是物件導向方法的乙個重要原則,是將抽象得到的資料和行為(或功能)相結合,形成乙個有機的整體。封裝有兩個含義:結合性,即將屬性和方法結合(也就是將資料與運算元據的源**進行有機的結合,形成「類」,其中資料和函式都是類的成員);資訊隱蔽性,利用介面機制隱蔽內部細節。因此封裝的目的在於將物件的使用者和設計者分開,以提高軟體的可維護性和可修改性。

例如,在抽象的基礎上,我們可以將學生的資料和功能封裝起來,構成乙個學生類.如下:

class student   

可以看到通過封裝使一部分成員充當類與外部的介面,而將其他的成員隱蔽起來,這樣就達到了對成員訪問許可權的合理控制,使不同類之間的相互影響減少到最低限度,進而增強資料的安全性和簡化程式的編寫工作。

各種角度看封裝

使用者:我只需要個能用的,能公升級的產品.

客戶程式設計師:我需要的是可擴充套件的,封裝的,外掛程式式的庫,這個庫的東西不能影響到程式框架中的其他部分.

庫程式設計師:給客戶程式設計師乙個介面和乙個二進位制級別的**。以實現可擴充行和可重用性.

記憶體:對我而言沒有封裝,計算機的乙個基本概念,越往底層限制的東西越少.

編譯器:我編譯出來的**要具有封裝性,必須處理我和同行之間的差異.

c++語言:無辜的我是用來限制程式設計師的。但是也可以使用我的巧妙規則來提高你的水平,來實現你所需要的重用和擴充性.

下面是乙個學生類的完整**,希望藉此理解c++的封裝性其實就是通過類和物件以及其訪問許可權的設定實現的。

/*main.cpp*/

#include #include "action.h"

using namespace std;

int main(int argc,char *argv)

for(int i=0;i<5;i++)

stu[i].display();

int n, flag=0;

cout <<"請輸入要查詢同學學號:";

cin >> n;

for(int i=0;i<5;i++)

else if(i==4)

cout<<"沒有找到該學生!"<< endl;

}

return 0;

}

/*action.cpp*/

#include #include "action.h"

using namespace std;

void student::create()

int student::search(int n)

void student::display()

/*action.h*/

#ifndef action_h

#define action_h

#include using namespace std;

class student

; #endif



物件導向三大特性之封裝性

1 如何實現體現封裝性 乙個私有的資料域 乙個公有的域訪問器方法 乙個公有的域更改器方法 public class test public date getdate public void setname string name public void setdate date date 2 這樣做...

c 三大特性之封裝

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

C 類和物件特性(繼承性,封裝性,多型性)

基類 派生類定義及其基本定義 當建立乙個新的類時,可以指定它繼承已有的類的成員。這兩個類分別被稱為基類,派生類。繼承,就是將基類中public和protected中的成員,全部或分別,繼承到派生類中的private protected public中,單個或多個部分中 派生類可以從乙個或多個基類繼承...