캡슐화

2013. 1. 1. 16:39C/C++/C++

클래스를 선언하면서 , 

 

그 클래스들을 포함하여 , 감싸는 개념임.

 

캡슐화는 기본적으로 , 정보은닉을 하는 개념이라고 보면됨.

 

자전거로 예를 들어보자.

 

 #ifndef __WHY_H_
#define __WHY_H_

#include <iostream>
using namespace std;

class Saddle

{

 private:
 int main2;
public:
 void eaddle(int &main1);
};

void Saddle::eaddle(int &main1)
{
 main2 = main1;
 if(main2 > 2)
 {
  cout << "saddle을 두 개 중복하실수 없습니다.";
  return;
 }
 
 main2++;
}
class Frame

{

  private :
 static int main1; // 프레임 , 자전거의 몸체부분

  public :

    bool CheckIn() ;

    void frame() ;

};

 

bool Frame::CheckIn() 

 {

    if(main1 < 0)

    {

      cout << "중요한 몸체 부분인 프레임이 없습니다." << endl;

      return false;

    }
 main1 = 1; 

 Saddle sadle;
 sadle.eaddle(main1);

    return true;

 }

void Frame::frame() {

{
 main1 = 0;
 
    if(main1 > 1)

    {

      cout << "프레임을 두개이상 중복이 불가능합니다." << endl;

    }

 main1++;

  cout << "프레임" << endl;

};

class Plus
{
private:
 Frame frame;
 Saddle saddle;
public:

  void plus()

  {

    frame.frame();

    saddle.saddle();

  }

};
#endif

 

 

이때 , plus 의 역할은 캡슐화 이다.

 

캡슐화의 역할은 크지만,

 

구체적인 정보와 가정이 필요하다.