객체지향언어의 대표적인 예로는 JAVA, C++, Python, Swift 등이 있다. 절차지향언어에 대조적으로 클래스의 상속이 가능하기 때문에 코드를 재사용 할 수 있어 편리하다. 또한 독립적인 객체로 이루어져 있기 때문에 생산적으로 작업할 수 있고, 유지 및 보수에 용이하다. C와 호환도 가능하다. 하지만 실행 속도가 절차지향언어에 비해 느리다는 단점을 가지고 있다.
1. 객체지향의 꽃 클래스와 객체
- 클래스 : 객체를 정의하는 틀, 설계도
- 객체 : 클래스라는 틀에서 생겨난 실체
- 클래스는 데이터(멤버 변수)와 메소드(멤버 함수)로 구성된다.
예시)
class Circle{
private:
int radius;
public:
Circle();
Circle(int n);
void setRadius(int n);
double getArea();
~Circle();
};
2. 객체지향의 특성
- 추상화 : 객체들의 공통적인 속성과 기능을 추출하여 모델링이 가능하다.
- 캡슐화 : 데이터와 메소드를 하나로 묶는 것이 가능하며 접근지정자를 통해 데이터를 숨길 수 있다.
- 상속화 : 부모 클래스의 특성과 기능을 자식 클래스가 물려받을 수 있다(재사용이 가능하다).
- 다형성 : 하나의 기능이 경우에 따라 다르게 작동한다.
(Overloading : 같은 이름의 함수를 '중복 정의'하는 것을 말하며 호출인자에 따라 알맞은 함수를 선택한다.)
(Overriding : 상속관계에서 같은 이름의 함수를 '재정의'하는 것을 말한다.)
'C++' 카테고리의 다른 글
클래스와 객체 (0) | 2023.03.28 |
---|---|
반복문과 If문 그리고 함수 (0) | 2023.03.28 |