C++/공부내용
C++ Classes - Encapsulation
HappyFrog
2022. 6. 29. 18:20

캡슐화
캡슐화의 의미는 "민감한"데이터를 유저들로부터 확실히 숨기는 것입니다. 이것을 하기 위해서 당신은 반드시 클래스의 변수/속성을 private 으로 선언해야 합니다. 만약 당신이 private멤버의 값을 다른 이가 읽고 수정할 수 있도록 하고 싶다면, 당신은 public으로 get과 set메서드를 제공할 수 있습니다.
Private 멤버에 접근하기
private 속성에 접근하기 위해선 public인 'get'과 'set' 메서드를 사용해야 합니다:
예시
#include <iostream>
using namespace std;
class Employee {
private:
// private 속성
int salary;
public:
// 설정하기
void setSalary(int s) {
salary = s;
}
// 얻어오기
int getSalary() {
return salary;
}
};
int main() {
Employee myObj;
myObj.setSalary(10000);
cout << myObj.getSalary();
return 0;
}

예시 설명
salary 속성은 접근이 제한되는 private 입니다.
public인 setSalary() 메서드는 매개변수를 ( s ) 취하며 이것을 salary 속성에 할당합니다. (salary = s)
public인 getSalary() 메서드는 private인 salary 속성의 값을 반환합니다.
main() 의 내부에서 우리는 Empoyee 클래스의 객체를 생성했습니다. 우리는 지금 setSalary() 메서드를 사용하여 private 속성에 50000 이라는 값을 할당했습니다. 그리고 이것을 getSalary() 메서드를 통해 값을 받아올 수 있습니다.
왜 캡슐화를 할까요?
- 당신의 클래스의 멤버를 가능한 자주 private으로 선언하는 것은 좋은 연습이 됩니다. 당신이 코드의 한 부분을 다른 부분에 영향없이 변경할 수 있게하기 때문에 캡슐화는 당신의 데이터에 대해 더 나은 제어를 보장합니다.
- 데이터의 보안 수준이 증가합니다.