728x90
객체지향적 프로그래밍은 4가지 특징이 있다.
때로는 5가지 특징이 있다고 하는데, 캡슐화에서 다른 한가지 특징이 자동적으로 파생되어 나옴으로 4대특징이라 해도 무방하고 5대 특징이라고 해도 무방하다.
객체지향의 4대 특징은 다음과 같다.
- 추상화 (Abstraction)
- 어떠한 특성만을 가지고서 재조합 하는것을 뜻한다.
- 이는 프로그램에서 필요한 부분만 외부에 노출시키고 필요없는 부분을 감춤으로써, 프로그램 내부의 객체 구현방법을 몰라도 사용할 수 있도록 해준다. 그리하여 객체별 프로그래밍이 가능해지고 이는 대규모 프로젝트 에서의 효율적인 작업을 야기한다.
- 캡슐화 (Encapsulation) [ 여기에서 정보은닉 (Information hiding)이 파생된다. ]
- 객체의 속성이나 동작들을 클래스로 묶는것을 통칭한다. 이는 사람별, 음식별, 동작별 등의 특정한 행위와 특정 물체 등 하나의 객체별로 동작사항을 묶어서 나타내는것을 말한다.
- 캡슐화 를 함 으로써 함수들을 객체별로 묶어 다루게되고, 이는 외부에서 필요한 데이터만 접근할 수 있도록 제한 한다는 것을 말한다. 이로써 프로그레머는 필요한 데이터만 접근시키고 필요없는 변수는 접근을 제한하여 안정적인 프로그램의 동작을 보장하고. 외부에서 다룰 수 있는 데이터는 변조하더라도 내부 프로그래밍 동작은 영향을 받지 않게된다.
- 또한 캡슐화 를 함으로써 프로그램의 내부구조를 몰라도 구동시킬수 있게 되어 외부에서 함부로 내부코드로 접근할 수 없게 만들 수 있다. 이렇게 하여 내부구조를 모르게 제한할 수 있어 정보은닉 이 파생되는것이다. 말 그대로 정보를 은닉한다. 라고 생각하면 된다.
- 상속성 (Inheritance)
- 상위클레스의 속성이나 기능을 물려받는 하위 클레스를 이야기한다. 재사용과 확장에 관련이 있다.
- 즉, 기존 클래스를 사용하여 새로운 클래스를 만들 수 있게 하고. 새로운 클래스는 기존 클래스의 속성과 메소드를 그대로 물려받을 수 있어 코드의 재사용성을 높이는 결과를 보인다. 상속성을 이용하면 기존 클래스를 수정하지 않고도 새로운 클래스를 만들 수 있으며. 이는 유지보수성을 높이는 결과로 이어진다.
- 다형성 (Polymorphism)
- 하나의 객체가 여러가지 자료형을 가질 수 있는것 을 다형성 이라고 한다.
- 다형성을 이용하면 객체의 타입에 관계없이 같은 이름의 함수를 호출 할 수 있으며. 코드의 가독성을 높인다. 다형성은 상속성과 함꼐 사용되어 객체타입에 따라 다른 함수가 호출되도록 한다.
이런 객체지향의 4가지 특징은 코드의 재사용성, 유지보수성을 높이고 대규모 프로젝트에서의 개발과 유지보수를 용이하게 하는 효과가 있다.
728x90
'컴퓨터 용어 정리' 카테고리의 다른 글
C++ 생성자(constructor) (0) | 2023.04.22 |
---|---|
C++ class (0) | 2023.04.22 |
객체 지향적 프로그래밍 OOP (Object Oriented Programming) (0) | 2023.04.22 |
절차 지향적 프로그래밍 POP (Procedural Oriented Programming) (0) | 2023.04.22 |
C++ 가변 함수(Variable argument) (0) | 2023.04.20 |