4.5정보 은닉
연관 있는 변수와 함수를 묶는 것을 캡슐화라고 했습니다. 캡슐화할 때 어떤 멤버와 메서드는 공개하여 유저 프로그래머가 사용할 수 있도록 하고, 어떤 멤버와 메서드는 숨겨서 유저 프로그래머가 접근할 수 없도록 할 것인지 정해야 하는데 이러한 개념을 정보 은닉(information hiding)이라고 합니다. 캡슐화는 정보 은닉을 포함하는 개념입니다. 그런데 멤버와 메서드를 공개하거나 숨긴다는 것은 어떤 의미일까요? 파이썬은 기본적으로 정보 은닉을 지원하지 않으므로 C++ 코드를 보면서 이야기해 보겠습니다. 파이썬의 정보 은닉은 이후에 살펴보겠습니다.
■ C++의 정보 은닉
코드 6-21 oop1/oop1_2/info_hiding.cpp ①
class Account{ public: // #1 // 생성자: 파이썬 클래스의 __init__( )과 같다 Account(string name, int money){ user = name; balance = money; } // 인스턴스 메서드(멤버 함수) int get_balance() { return balance; } // 인스턴스 메서드(멤버 함수) void set_balance(int money) { if (money < 0) { return; } balance = money; } private: // #2 // 인스턴스 멤버(멤버 변수) string user; int balance; // #3 };