객체(object)란?

조성재·2022년 4월 3일
0

처음부터 C++

목록 보기
5/6

객체(Object)란?

  • 변수들과 참고 자료들로 이루어진 소프트웨어 덩어리다.
  • 객체는 현실 세계에 존재하는 것들을 나타내기 위해 추상화(abstraction)라는 과정이 필요하다.
  • 객체는 자기만의 정보를 나타내는 변수들과, 이를 가지고 어떠한 작업을 수행 하는 함수로 둘러싸고 있다.
  • 이러한 객체의 변수나 함수들을 보통 인스턴스 변수(instance variable)와 인스턴스 메소드(instance method)라고 부르게 된다.

캡슐화(Encapsulation)

  • 객체의 변수들은 외부로부터 보호되고 있다.
  • 즉, 외부에선 객체의 인스턴스 변수의 값을 바꾸지 못하고 오직 객체의 인스턴스 함수를 통해서만 가능하다.(물론 극단적으로 불가능한 것은 아니고 사용자가 컨트롤할 수 있다.)
  • 이와 같이 외부에서 직접 인스턴스 변수의 값을 바꿀 수 없고 항상 인스턴스 메소드를 통해서 간접적으로 조절하는 것을 캡슐화라고 부른다.

클래스(Class)

  • C++ 에서 객체의 생성은 클래스를 통해 이뤄진다.
  • 클래스를 이용해서 만들어진 객체를 인스턴스(instance)라고 부른다.
class Animal {
 private:
  int food;
  int weight;

 public:
  void set_animal(int _food, int _weight) {
    food = _food;
    weight = _weight;
  }
  void increase_food(int inc) {
    food += inc;
    weight += (inc / 3);
  }
  void view_stat() {
    std::cout << "이 동물의 food   : " << food << std::endl;
    std::cout << "이 동물의 weight : " << weight << std::endl;
  }
};
  • Animal이라는 클래스를 나타낸 코드로 생성될 임의의 객체에 대한 설계도로 볼 수 있다.
  • 즉, Animal 클래스를 통해서 생성될 객체는 food, weight 라는 변수가 있고, set_animal, increase_food, view_start 라는 함수들이 있는데 Animal클래스 상에서 이들을 지칭할 떄 각각 멤버변수(member variable), 멤버함수(member function)라고 부른다.
  • 인스턴스로 생성된 객체에서는 인스턴스 변수, 인스턴스 함수, 클래스라는 골격 상에서는 멤버 변수, 멤버 함수라고 부른다.
  • 위 코드에서 private, public은 접근지정자로 외부에서의 접근 권한을 설정하는 키워드다.
  • 만약 아무것도 설정하지 않으면 기본값은 private다.

0개의 댓글