• 회원가입
  • 로그인
  • 구글아이디로 로그인

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

1,958  
목차
  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.

데이터 보안 강화.

 



분류 제목
class C++ - OOP (객체 지향 프로그래밍)
class C++ - Class (클래스) / Object (객체)
class C++ - Class Methods (클래스 메서드)
class C++ - Constructors (생성자)
class C++ - Access Specifiers (접근지정자)
class C++ - Encapsulation (캡슐화)
class C++ - Inheritance (상속)
class C++ - Polymorphism (다형성)
class C++ - Files (파일) - 파일생성/파일읽기/파일쓰기
class C++ - Exceptions (= Try...Catch..) - 에러 제어
목록
찾아주셔서 감사합니다. Since 2012