절차지향언어
개체를 순차적으로 처리하여 프로그램을 실행한다. 대표적인 언어로는 C언어가 있다.
대개 데이터를 중심으로 함수를 만들어 사용한다. 장점으로는 속도가 빠르다.
그러나, 여러가지 단점이 있다.
- 유지보수
절차지향에서는 모든 요소가 연결되어 있기 때문에, 하나를 고치면 나머지도 전부 고쳐야 한다. 그래서 유지보수가 어렵다. - 순서가 정해져 있다.
코드의 순서에 따라 결과가 달라질 수 있기 때문에 생산 효율이 떨어진다.
객체지향언어
* 객체란? 우리 주변에서 찾아볼 수 있는 확실한 의미를 가지고 있는 물리적인 것 혹은 논리적인 것. 반드시 고유한 Unique Identity를 가져야 한다.
객체지향언어란 다수의 객체를 구현하고 객체들끼리 서로 상호작용 하도록 만드는 프로그래밍 언어이다.
특징
- 캡슐화
데이터와 알고리즘을 묶어 하나의 캡슐처럼 만들어 외부에서 코드의 형태를 알 수 없게 만드는 것. 내부 데이터를 숨긴다. - 상속
부모 클래스의 Feature를 자식클래스에게 물려주는 것. 상속을 이용해서 is_a 관례를 맺을 수 있다. - 다형성
하나의 객체는 여러개의 Type을 가질 수 있다. 다형성에는 여러가지 종류가 있다.
- Ad hoc Polymorphism : 하나의 클래스 안에 같은 이름을 가진 메소드가 존재한다. 즉, Overloading
- Pure Polymorphism : 자바에서는 Overriding 개념으로 정의된다.
이 외에도 많은 유형들이 있다. - 추상화
객체의 공통적인 속성이나 기능을 묶어 정의한다.
장점
- 재사용성. 상속을 이용해 코드 재사용 가능
- 생산성 증가 및 유지보수 용이
- 현실 세계의 개념을 컴퓨터 세계로 자연스럽게 추상화 할 수 있다.
단점
- 개발 속도가 느리다
- 절차지향 프로그램보다 실행 속도가 느리다.
참고
http://www.btechsmartclass.com/java/java-polymorphism.html
https://fierycoding.tistory.com/42
'JAVA > JAVA' 카테고리의 다른 글
Synchronized (동기화) in Java (0) | 2024.01.14 |
---|---|
Garbage Collection - 가비지 컬렉션 (0) | 2022.06.23 |
Java Virtual Machine (JVM) & 자바 컴파일 (0) | 2022.06.23 |
JAVA - 특징 (0) | 2022.06.20 |