객체 지향 4대 요소

2019. 9. 4. 23:38

출처: https://static.javatpoint.com/images/java-oops.png

 

추상화 (Abstraction)

 

공통의 속성이나 기능을 묶어서 이름을 붙이는 것

객체 지향 관점에서 클래스를 정의하는 것이 추상화라고 할 수 있다.

절차 지향 프로그래밍에서도 데이터를 추상화해서 하나의 새로운 데이터 유형을 만드는 구조체가 해당된다.

하나의 새로운 데이터 형태를 정의하는 데 그 안에 여러 개의 부속 데이터를 둘 수 있다.

 

 

캡슐화 (Encapsulation)

 

데이터 구조와 데이터를 다루는 방법을 결합시켜 묶는 것 (변수와 함수를 하나로 묶기)

묶을 때 객체가 맡은 역할을 수행하기 위한 하나의 목적을 한데 묶는다고 생각해야 한다. (은닉화)

또한, 데이터를 절대로 외부에서 직접 접근하지 않고 오로지 함수를 통해서만 접근이 가능하도록 해야 함 캡슐화

따라서 캡슐화에 성공하면 은닉화도 자연스레 이루어진다.

 

 

상속성 (Inheritance)

 

상위 개념의 특징(데이터,함수)을 하위 개념이 물려받는 것을 말함.

객체지향의 하이라이트이자 절차지향과의 차이를 두게 되는 결정적인 특징

 

 

다형성 (Polymorphism)

 

부모 클래스에서 물려받은 가상 함수를 자식 클래스 내에서 overriding 되어 사용하는 것

 

ex. 마트에서 계산하는 POS를 살펴보면, “결제라는 같은 부모 클래스에 여러 자식 클래스들이 생기게 된다. 예를 들어, 현금결제”, “카드결제”, “수표결제”와 같이 결제라는 부모 클래스의 특성에 자식 클래스 각각마다의 특성이 씌워진다. 다시 말해, 결제자체가 다형성을 지니게 되는 것이다.

 

 

 

 

 

 

 

BELATED ARTICLES

more