C++

[class] C++ - Encapsulation (캡슐화)

2,322
목차
  1. Encapsulation (캡슐화)
  2. 캡슐화 장점

 

Encapsulation (캡슐화)

 

"민감한" 데이터를 사용자에게 비노출.

즉, 클래스 안 데이터 직접 수정 막고 메서드로만 변경 허용.

1. 데이터 보호. 

2. 내부적으로만 작동하는 코드 숨김.

 


[방법] ★

 

1. 클래스 안 속성(=변수)을 private으로 설정. 

※ private 접근지정자 :동일 클래스에서만 접근 가능.

 

2. private 설정된 속성에 접근 방법 :

public 설정된 get/set 메서드 통해서만 허용.

 


[예제]

 

#include <iostream>

using namespace std;


class Hz {

  private:

    string host;


  public:

    void setHost(string h) {

      host = h;

    }

    string getHost() {

      return host;

    }

};


int main() {

  Hz my;

  my.setHost("Homzzang.com");

  cout << my.getHost();

  return 0;

}

 

결과값: Homzzang.com


PS. 코드 설명.

 

※ host : private (= 다른 클래스에서 접근 금지) 설정된 필드. 

※ get 메서드 : host 필드 값 반환.

※ set 메서드 : host 필드 값 설정.  

 

 

캡슐화 장점

 

1.

클래스 안 속성/메서드에 대한 더 나은 제어.

즉, 누군가에 의해 코드가 엉망이 될 가능성 ↓.

 

2.

유연성↑. (즉,  다른 부분에 영향 안 주고, 코드 일부만 변경 가능.)

 

3.

데이터 보안 강화.

 



분류 제목
basic C++ - Switch (스위치 조건문) ★
basic C++ - While Loop (와일 반복문) ★
basic C++ - For Loop (포 반복문) ★
basic C++ - Break/Continue (브레이크/컨티뉴) 키워드 ★ - 반복문 빠져나가기 / 특정 조건 건너…
basic C++ - Arrays (배열)
basic C++ - references (참조변수) + 변수의 메모리 주소
basic C++ - Pointers (포인터)
function C++ - Functions (함수) - 정의/호출
function C++ - Function Parameters (함수 매개변수)
function C++ - Function Overloading (함수 오버로딩)
class C++ - OOP (객체 지향 프로그래밍)
class C++ - Class (클래스) / Object (객체)
class C++ - Class Methods (클래스 메서드)
class C++ - Constructors (생성자)
class C++ - Access Specifiers (접근지정자)
2/3
목록
 홈  PC버전 로그인 일본어
그누앞단언어
그누뒷단언어
그외코딩언어
그누보드
제작의뢰
Q&A
커뮤니티 2
웹유틸
회원센터
홈짱닷컴 PC버전 로그인