之前四篇物件導向類別Class、物件Object、建構子Constructor、 Day 15 - C++ 物件導向4 - Method與Function歡迎接續觀看
前言:
物件導向包含三個重點觀念,Encapsulation封裝、Inheritence繼承和Polymorphism 。
複習一下之前說過class有兩種區域:
其實還有叫做protected的區域
關於繼承是什麼,過幾天天會專門說明。
Encapsulation封裝,如其名,就是一種把”不能被亂碰“的資料藏起、包裝起來不會隨意碰觸、影響到的。
藏在class裡,一個保險箱的概念~
如這一篇Day16物件導向應用提到的,把variable放在private。
這就叫做encapsulation~
來看看範例吧:
class Car{
private:
int price;
string colour, brand, model;
public:
void setColour(string c){
colour = c;
}
string getColour(){
return colour;
}
};
int main(){
Car c1;
c1.setColour("Yellow");
cout << c1.getColour() << endl;
return 0;
}
例如在公司裡有不同部門,當一名財物進入系統後進入財務系統,業務進入業務系統,如果會計有權限進入業務系統有可能會讓業務的工作出現問題,反之也是有可能,所以我們需要用到這個概念,把權限、資料封起來。
可以把variable藏在private中不會互相打到
class Sales{
private: ......
public:
void info(){
cout << "welcome to Sales Dept";
}
};
class Accounting{
private:
....
public:
void info(){
cout << "welcome to accounting Dept";
}
};
int main(){
Sales s;
Accounting a;
int x;
cout << "Enter your department: 1.Sales 2. Accounting" << endl;
cin > x;
if(x == 1){
s.info();
}else a.info();
}
Reference: geeksforgeeks, tutorialpoint, w3cshool, Google