유댕이의 개발공부일지
<TIL 20.06.19> 객체지향 프로그래밍의 특징 본문
오늘 Sprint Office Hour시간에 객체지향 프로그래밍의 특징에 대해 확인하는 시간이 있었는데, 누구에게 설명할 정도로 알고 있는 것 같지 않아서 구글링 하며 간단하게 블로깅해본다.
1. 상속성
객제지향의 가장 대표적인 특징으로, 특정 객체의 내용을 다른 객체로 상속받아 사용할 수 있도록 하는 것이다. 이런 특징을 가지면서 객체지향 언어가 절차지향 언어에 비해 문법의 규모가 2배 이상 늘어났다고 한다.
즉, 상속이란 상위 개념의 특징을 하위 개념이 물려받는 것을 말한다. 하나의 클래스가 가지고 있는 특징(데이터, 메서드, ...) 들을 그대로 자식클래스로 물려주고자 할 때 상속성의 특징을 사용한다.
2. 추상화
객체들의 공통적인 특징(속성과 기능)들을 파악해 뽑아내고 불필요한 특징들은 제거해 일반화하여 단순하게 만든다. 즉, 우리가 구현하는 객체들이 가진 공통적인 데이터와 기능을 도출해 내는 것이다. 그러므로 복잡도를 관리할 수 있도록 해준다.
즉, 만일의 상화(타인이 외부에서 조작)을 대비해서 외부에서 특정 속성이나 메서드를 사용할 수 없도록 숨겨놓은 것이다.
3. 캡슐화
데이터나 메서드를 하나로 묶고 노출시키지 않는다는 것으로, 캡슐로 보호한다는 것이라 볼 수 있다. 그래서 외부 객체는 객체 내부의 구조를 얻지 못한다.
즉, 만일의 상황(타인이 외부에서 조작)을 대비해서 외부에서 특정 속성이나 메서드를 사용할 수 없도록 숨겨놓은 것이다.
4. 다형성
다형성이란 서로 다른 클래스의 객체가 같은 메시지를 받았을 때 각자의 방식으로 동작하는 것을 말한다. 이름이 동일한 메서드가 어떤 자료에 사용되었느냐에 따라 다르게 동작한다는 것이다.
즉, 같은 타입이지만 실행결과가 다양한 객체를 이용할 수 있는 것이다.
'TIL' 카테고리의 다른 글
<TIL 20.06.23> Time Complexity( Big-O ) (0) | 2020.06.23 |
---|---|
<TIL 20.06.22> DFS && BFS (0) | 2020.06.22 |
<TIL 20.06.18 > Binary Search Tree (0) | 2020.06.18 |
<TIL 20.06.17> OOP( 객체 지향 프로그래밍 ) (0) | 2020.06.17 |
<TIL 20.06.16> Graph, Tree (0) | 2020.06.16 |