본문 바로가기

객체지향 & 절차지향 언어

절차지향언어

개체를 순차적으로 처리하여 프로그램을 실행한다. 대표적인 언어로는 C언어가 있다.

대개 데이터를 중심으로 함수를 만들어 사용한다. 장점으로는 속도가 빠르다.

 

그러나, 여러가지 단점이 있다.

  1. 유지보수
    절차지향에서는 모든 요소가 연결되어 있기 때문에, 하나를 고치면 나머지도 전부 고쳐야 한다. 그래서 유지보수가 어렵다.
  2. 순서가 정해져 있다. 
    코드의 순서에 따라 결과가 달라질 수 있기 때문에 생산 효율이 떨어진다.

객체지향언어

* 객체란?  우리 주변에서 찾아볼 수 있는 확실한 의미를 가지고 있는 물리적인 것 혹은 논리적인 것. 반드시 고유한 Unique Identity를 가져야 한다.

 

객체지향언어란 다수의 객체를 구현하고 객체들끼리 서로 상호작용 하도록 만드는 프로그래밍 언어이다.


특징

  1.  캡슐화
    데이터와 알고리즘을 묶어 하나의 캡슐처럼 만들어 외부에서 코드의 형태를 알 수 없게 만드는 것. 내부 데이터를 숨긴다.
  2.  상속
    부모 클래스의 Feature를 자식클래스에게 물려주는 것. 상속을 이용해서 is_a 관례를 맺을 수 있다.
  3. 다형성
    하나의 객체는 여러개의 Type을 가질 수 있다. 다형성에는 여러가지 종류가 있다.
    - Ad hoc Polymorphism : 하나의 클래스 안에 같은 이름을 가진 메소드가 존재한다. 즉, Overloading
    - Pure Polymorphism : 자바에서는 Overriding 개념으로 정의된다.
    이 외에도 많은 유형들이 있다.
  4. 추상화
    객체의 공통적인 속성이나 기능을 묶어 정의한다.

장점

  1. 재사용성. 상속을 이용해 코드 재사용 가능
  2. 생산성 증가 및 유지보수 용이
  3. 현실 세계의 개념을 컴퓨터 세계로 자연스럽게 추상화 할 수 있다.

단점

  1. 개발 속도가 느리다
  2. 절차지향 프로그램보다 실행 속도가 느리다.

 

 

참고

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