객체지향의 4가지 특징
객체지향을 이해하는데 필요한 4가지 특징을 제 생각으로 예시 들며 설명합니다.
- 추상화
- 구체적인 사물들의 공통적인 특징을 파악에서 이룬 하나의 개념 또는 집합으로 다루는 수단
- example
[갤럭시s21, 아이폰13, 갤럭시 폴드]가 있습니다.
여기서 공통적인 특징은 모두 스마트폰이라는 것이죠
스마트폰인 만큼 각자 전화, 문자, 인터넷 등 여러 기능이 겹칠 겁니다.
그럼 스마트폰Obj의 라는 하나의 객체를 정의하고 이 객체는 전화, 문자, 인터넷 등 여러 기능을 추상화합니다.
이제 다른 스마트폰을 만들 때는 해당 스마트폰Obj의 기능들을 세부구현하면 됩니다.
- 일반화
- 여러 개체가 가진 공통된 특성을 부각해 하나의 개념이나 법칙으로 성립되는 과정 객체지향 프로그래밍 관점에서는 상속 관계
- example
[아이폰11, 아이폰12, 아이폰13 …]등 여러 아이폰이 있습니다. 해당 예시에서 모두 아이폰이죠. 이러면 아이폰Obj이라는 특성을 하나로 묶어서 생각합니다. 나머지 아이폰의 버전별 특성은 아이폰Obj를 상속받아서 특성을 전부 사용하면서 자기만의 기능이나 특성을 추가 구현하면 됩니다.
- 캡슐화
- 객체만이 자신이 어떻게 작동되는지를 알고 있으며, 외부에서는 알 수 없는 방식
낮은 결합 도를 유지할 수 있도록 해주는 객체지향 설계원리 - example
스마트폰을 사용하는 클라이언트로서는 전화가 어떻게 동작하는지, 인터넷에 연결하는 세부 동작 방식이 무엇인지 몰라도 사용에는 문제가 없습니다.
- 객체만이 자신이 어떻게 작동되는지를 알고 있으며, 외부에서는 알 수 없는 방식
- 다형성
- 서로 다른 클래스의 객체가 같은 메시지를 받았을 때, 각자의 방식으로 동작하는 능력
- example
리모컨이라는 객체가 있을 때 전원을 킨다는 동작을 하면 TV 리모컨을 TV를 켜지만 에어컨 리모컨은 에어컨을 켭니다.
댓글남기기