본문 바로가기
JAVA

JAVA 객체 지향 프로그래밍이란? (+특징)

by 자바비터 2022. 3. 5.

객체란?

: 소프트웨어 객체는 현실 세계의 객체를 필드와 메소드로 모델링 한 것으로,

상태를 필드(Field)로 정의하고, 동작을 메소드(Method)로 정의한다.

이 때, 필드는 객체 내부에 선언된 변수를 의미하고, 메소드는 객체 내부의 정의된 동작을 의미한다.

  

  

 절차 지향 프로그래밍

객치 지향을 알아보기 전에 절차 지향에 대해서 먼저 알아보겠습니다.

절차 지향 프로그래밍은 일련의 동작을 순서에 맞추어 단계적으로 실행하도록 명령어를 나열하여

데이터를 정의하는 방법보다 명령어의 순서과 흐름에 중점을 둔 프로그래밍 방법입니다.

 

절차 지향 프로그래밍의 장점

(1) 수행할 작업을 예상할 수 있어 직관적이다.

(2) 규모가 작을 때는 프로그래밍을 이해하기가 용이하다.

(3) 소프트웨어는 계산 위주이므로 절차 지향 프로그래밍이 적합니다.

 

절차 지향 프로그래밍의 단점

(1) 소프트웨어의 규모가 커지면서 동작과 분리되어 전 과정에서 서로 복잡하게 얽혀 있는

데이터를 사용하기 때문에 절차 지향 프로그램 방식에는 한계가 있다.

(2) 절차 지향 프로그램은 추후 변경하거나 확장하기 어렵다.

    

  

▶ 객체 지향 프로그래밍

이러한 절차 지향 프로그램의 단점을 보완하여 객체 단위로 프로그래밍하며,

객체는 필드(데이터)와 메소드(코드)를 하나로 묶어서 표현하는 객체 지향 프로그래밍을 사용하게 되었습니다.

 

  

▶ 객체 지향 프로그래밍의 특징

(1) 캡슐화(정보 은닉)

: 관련된 필드와 메소드를 하나의 캡슐처럼 포장해 세부 내용을 외부에서 할 수 없도록 감춘다.

 

(2) 상속

: 자녀가 부모 재산을 상속받아 사용하듯이 상위 객체를 상속받은 하위 객체가 상위 객체의 메소드와 필드를 사용 할 수 있다.

→ 상속은 개발된 객체를 재사용하는 방법 중 하나이다.

 

(3) 다형성 "one interface, multiple implementation"

- 하나의 인터페이스를 사용하여 다양한 구현 방법을 제공한다.

- 하나의 클래스나 함수가 다양하는 동작할 수 있다.

- 대입되는 객체에 따라서 메소드를 다르게 동작하도록 구현, 실행 도중 동일한 이름의 다양한 구현체중에서 메소드를 선택 가능하다.

- 다형성은 동일한 명령을 내리더라도 객체의 종류에 따라 다르게 실행되는 프로그래밍 기법이다.

- 같은 이름의 메소드가 클래스나 객체에 따라 다르게 동작하도록 구현한다.

- 메소드 오버로딩(overloading) : 같은 이름이지만 다르게 동작하는 여러 메소드

- 메소드 오버라이딩(overriding) : 슈퍼클래스의 메소드를 서브 클래스마다 다르게 수현

 

(4) 추상화

- 현실 세계의 객체는 수 많은 상태가 있고 다양한 동작을 하지만, 클래스에 모두 포함하기는 여렵기에

추상화(Abstraction)하는 과정이 필요하다.

- 추상화는 현실 세계의 객체에서 불필요한 속성을 제거하고 중요한 정보만 클래스로 표현하는 일종의

모델링 기법이다.

- 사람마다 추상화하는 기법이 같지 않으므로 각 개발자는 클래스를 다르게 정의할 수 있다.

 

 

 

댓글