封裝性:封裝是物件導向方法的乙個重要原則,是將抽象得到的資料和行為(或功能)相結合,形成乙個有機的整體。封裝有兩個含義:結合性,即將屬性和方法結合(也就是將資料與運算元據的源**進行有機的結合,形成「類」,其中資料和函式都是類的成員);資訊隱蔽性,利用介面機制隱蔽內部細節。因此封裝的目的在於將物件的使用者和設計者分開,以提高軟體的可維護性和可修改性。
例如,在抽象的基礎上,我們可以將學生的資料和功能封裝起來,構成乙個學生類.如下:
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中,單個或多個部分中 派生類可以從乙個或多個基類繼承...