Java/자바의 정석

[JAVA] 객체지향 프로그래밍이란

teamzamong 2023. 7. 6. 10:34

객체지향이론은 실제 세계와 유사한 가상 세계를 컴퓨터 속에서 구현하기 위해 노력하는 과정에서 탄생했다.

실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건은 사물 간의 상호작용이라는 기본 개념을 바탕으로 한다.

 

객체지향 프로그래밍이란?

절차지향 프로그래밍과 달리 어떤 문제를 해결하기 위해 기능과 절차만 고려하는 것이 아니라,

  • 문제를 해결하기 위한 데이터(변수)를 갖고 있고, 기능(메서드)를 수행할 수 있는 객체를 식별해
  • 객체 간 유기적 결합을 통해 문제를 해결하고자 하는 프로그래밍 방식.

 

객체지향언어의 특징

  1. 코드 재사용성이 높다.
    • 기존 코드를 이용해 새 코드를 쉽게 작성할 수 있다.
  2. 코드 관리가 용이하다.
    • 코드 간 관계를 활용해 쉽게 코드를 변경할 수 있다. 유지보수가 쉽다.
  3. 신뢰성 높은 프로그래밍이 가능하다
    • 제어자와 메서드를 이용해 데이터를 보호하고 무결성을 유지한다.
    • 코드 중복을 제거해 코드 불일치로 인한 오동작을 방지할 수 있다.

 

객체지향 프로그래밍 vs 절차지향 프로그래밍

객체지향언어의 특징 위주로 객체지향과 절차지향 프로그래밍을 비교하면 다음과 같다.

  객체지향 프로그래밍 절차지향 프로그래밍
고려사항 객체와 객체간 상호작용 중심 절차와 절차를 수행하기 위한 기능 중심
접근방식 bottom-up 방식 top-down 방식
데이터와 캡슐화 객체 내 데이터와 코드가 캡슐화됨 데이터와 코드가 분리됨
접근제어자 private, public, protected 없음
상속 상속을 통해 코드 재사용과 계층 구조 구현 가능 없음
코드 재사용 상속을 통해 가능 없음
예시 Java, C++, Python 등 C, Fortran, Pascal 등

 

참고 자료