C언어 C++ Programming

[C++ 언어] 캡슐화란? Private 사용 방법 (Encapsulation)

끄적끄적아무거나 2021. 12. 23. 09:05
반응형

 

목차

     

     

     

     

     

     

     

    C++ Programming 캡슐화란? (Encapsulation)

     

    앞서 포스트에서 public과 private에 대해 알아보았습니다. public의 사용방법은 알았으나 private의 실제 예제에 대해서는 다루지 않았습니다.

     

    https://scribblinganything.tistory.com/425 

     

    [C++언어] Public, Private 차이와 사용방법

    목차 [C++언어] Public 정의 및 예제 Public은 한글로는 접근 지정자라고하고 영어로는 Access Specifier라고 합니다. 즉, 접근하는 방법에 대한 정의를 내려주는 단어 입니다. Class(클래스)의 Atribute나 metho

    scribblinganything.tistory.com

     

    캡술화는 private의 사용과 관련되어 있습니다. private은 해당 class에서만 접근이 가능 했습니다. public은 클래스 외부에서도 접근이 가능했습니다. 즉, 캡슐화는 private이라는 캡슐에 보호하고 싶은 인자를 보호하고 외부에서 캡슐을 사용할때는 프로그래머가 짜놓은 방식으로만 사용하게 만든 것입니다. 

     

    우리가 계산기를 사용할 때 버튼을 입력하여 원하는 값을 얻습니다. 하지만 계산기 내부 로직을 알수가 없습니다. 이러한 과정도 일종의 캡슐화로 볼 수 있습니다.

     

    • Private 을 사용해서 보호하고 싶은 인자 캡슐화
    • 동일 클래스 내에 Public을 사용해서 Private의 인자에 대한 접근 방식 설정

     

     

     

     

    C++ Programming Encapsulation, Private 으로 구현 하기

     

    코드>>

    #include <iostream>
    using namespace std;
    
    class EX_class {   
    private:
        int a_var;
    public:               
        void set_var(int x) {
            a_var = x;
        }
        int return_var() {
            return a_var;
        }
    };
    
    int main() {
        EX_class EX_object;
        EX_object.set_var(5);
        cout << EX_object.return_var() << "\n";
        return 0;
    }

     

    라인 5~6: private을 사용해서 캡슐화하여 int a_var의 접근을 제한 합니다.

    라인 7~13: a_var의 값을 설정하고 return하는 method를 public으로 접근 가능하게 구현 합니다.

    라인 18~19: a_var의 설정과 출력만 가능하고 그 외 변경은 불가능 합니다.

     

     

    결과>>

    5

     

     

    반응형