개요

객체지향 프로그램의 중요한 개념인 클래스와 객체에 대해 설명한다. 객체 지향 기법에 대한 이해와 클래스의 작성법, 객체가 무엇인지, 객체을 생성하는 법, 접근자와 설정자에 대해 살펴본다.

객체 지향

객체지향 프로그램은 실제 세계를 코드로 구현하는 것이다. 즉 실 세계의 구성처럼 프로그램도 비슷하게 구현하는 것이다.

실 세계가 그런 것처럼, 객체는 서로 상호작용을 한다. 사람이라는 객체와 강아지라는 객체가 서로 주인과 애완견이라는 점에서 이해할 수 있다.

프로그래밍에선 하나의 객체에 데이터와 메소드, 변수의 조합으로 이루어지며 다른 객체와 데이터로 상호작용한다.

객체 지향과 달리, 절차 지향 프로그래밍은 프로시저를 기반으로 한다. 여기서 프로시저는 일반적으로 함수를 의미하며 절차 지향 프로그래밍은 함수들의 집합으로 이루어진다.

여기서 문제는 데이터와 함수가 묶여 있지 않다는 점이다. 반면 객체 지향은 데이터와 함수가 묶여 있어, 프로그래밍에 있어서 큰 장점이 된다.

객체

객체는 상태와 동작을 가지고 있는 것으로, 객체의 상태는 객체의 속성이고 객체의 동작은 객체가 취할 수 있는 동작이다.

객체의 속성은 변수로, 동작은 메소드(함수)로 구현한다고 생각해도 무방하다.

클래스

클래스는 객체의 틀이자 도면이라고 할 수 있다. 클래스로부터 만들어진 객체를 클래스의 인스턴스라고 한다.

클래스를 구현하는 방식이다.

class 클래스이름{
		지료형 멤버 변수1;
		자료형 멤버 변수2;
		
		반환형 멤버함수1();
		반환형 멤버 함수2();
};

예시를 들어보면

class Circle{
pulic: //접근지정자
		int radius; //멤버 변수
		string color;
		
		double calcArea(){//멤버 함수
				return 3.14*radius*radius;
		}
};