본문 바로가기
Dev/Java

객체 지향 프로그래밍

by vellahw 2022. 8. 26.

 

객체 지향 프로그래밍(OOP: Object Oriented Programming)이란

현실 세계에서 어떤 제품을 만들 때, 부품을 먼저 개발하고 이 부품들을 하나씩 조립해서 완성된 제품을 만들 듯,

소프트웨어를 개발할 때도 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법이다.

 


- 객체(Object): 

물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것

객체는 속성과 동작으로 구성 되어 있다. (ex. 사람 - (속성)이름, 나이 등 / (동작)웃다, 먹다 등)

자바는 이 속성과 동작들을 각각 필드(field)와 메소드(method)라고 부른다.

 


 

- 객체 지향 프로그래밍의 특징 : 캡슐화, 상속, 다형성

 

 1. 캡슐화

: 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것

외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다.

필드와 메소드를 캡슐화하여 보호하면 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 할 수 있다.

자바 언어는 캡슐화된 멤버를 노출시킬 것인지, 숨길 것인지를 결정하기 위해 접근 제한자(Access Modifier)를 사용하여 객체의 필드와 메소드의 사용 범위를 제한함으로써 외부로부터 보호한다.

 

 

 2. 상속(Inheritance)

: 부모 역할의 상위 객체가 자식 역할의 하위 객체에게 자기가 가지고 있는 필드와 메소드를 물려주는 것

상속은 상위 객체를 재사용해서 하위 객체를 쉽고 빨리 설계할 수 있도록 도와주고, 이미 잘 개발된 객체를 재사용해서 새로운 객체를 만들기 때문에 반복된 코드의 중복을 줄여준다.

상위 객체의 수정으로 모든 하위 객체들의 수정 효과를 가져와 유지 보수 시간을 최소화 시킬 수 있다.

하위 객체는 상위 객체를 확장하여 추가적인 필드와 메소드를 가질 수 있다.

 

 

3. 다형성(Polymolphism)

: 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질

코드 측면에서 보면 다형성은 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 해준다.

부모 타입에는 모든 자식 객체가 대입될 수 있고, 인터페이스 타입에는 모든 구현 객체가 대입될 수 있다.

다형성의 효과로 객체를 부품화 시키는 것이 가능하여 유지 보수에 용이하다.

예를 들어 자동차를 설계할 때 타이어 인터페이스 타입을 적용 했다면 이 인터페이스를 구현한 실제 타이어들은 어떤 것이든 상관없이 장착(대입)이 가능하다.

'Dev > Java' 카테고리의 다른 글

include 디렉티브  (0) 2022.09.01
<jsp:include> 액션 태그  (0) 2022.09.01
12. 그룹 알고리즘 (Group Algorithm)  (0) 2022.08.08
11. 최빈값 알고리즘(Mode Algorithm)  (0) 2022.08.08
10. 병합 알고리즘(Merge Algorithm)  (0) 2022.08.08

댓글