객체 지향 프로그래밍(Object Oriented Programming)이란?
애플리케이션을 구성하는 요소들을 객체라고 하고, 객체들을 유기적으로 연결하여 프로그래밍 하는 것
쉽게 말하면 작은 문제를 해결할 수 있는 객체를 먼저 만들고, 그 객체들을 조합해 큰 문제를 해결하는 방식이라는 것
예를 들면 부품의 역할을 하는 객체를 먼저 만든 후, 그것들을 조립해서 프로그램을 완성
객체(Object)란?
실제로 존재하는 것으로 사물 또는 개념을 의미
자바에서 필드(field)와 메소드(method)라 부르는 속성과 동작으로 구성되어 있다.
현실 세계 객체의 속성과 동작을 소프트웨어 객체 필드와 메소드로 정의하는 것을 객체모델링이라고 한다.
객체는 각각 독립적으로 존재하고 다른 객체와 상호작용하면서 동작하는데, 메소드가 상호작용 수단이다.
객체가 다른 객체의 기능을 이용하는 것을 메소드 호출이라고 한다.
객체 지향 프로그래밍 특징
① 기존 프로그래밍 언어와 크게 다르지 않음
- 기존 언어에 몇 가지 규칙만 추가
② 코드 재사용성 높음
- 새로운 코드 사용 시 기존 코드를 이용해 쉽게 작성할 수 있음
③ 코드 관리가 쉬움
- 코드 간의 관계를 맺어줌으로써 보다 적은 노력으로 코드 변경 가능
④ 신뢰성 높은 프로그램을 개발할 수 있음
- 제어자와 메소드를 이용해 데이터를 보호, 코드의 중복을 제거해 코드 불일치로 인한 오류를 방지할 수 있음
▶ 캡슐화 (Encapsulaiton)
객체의 필드, 메소드를 하나로 묶고 실제 구현 내용을 감추는 것
(ex. 알약)
외부 객체는 개체 내부 구조를 알 수 없고 객체가 노출해서 제공하는 필드와 메소드만 이용 가능
자바는 캡슐화된 멤버를 노출시킬지 숨길지 결정하기 위해 접근 제한자(Access Modifier)를 사용
접근 제한자는 객체의 필드와 메소드 사용 범위를 제한하여 외부로부터 보호
▶ 상속 (Inheritance)
부모 역할의 상위 객체는 자신이 가진 필드와 메소드를 자식 역할의 하위 객체에게 물려줘 사용할 수 있도록 하는 것
상위 객체를 재사용해 하위 객체를 쉽고 빠르게 설계할 수 있도록 함
이미 검증된 객체를 재사용해 새로운 객체를 만들기 때문에 반복된 코드의 중복을 줄여줌
상위 객체를 수정하면 모든 하위 객체가 수정되므로 유지 보수 시간을 최소화함
▶ 다형성 (Polymorphism)
같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질
하나의 타입에 여러 객체를 대입하여 다양한 기능을 이용할 수 있도록 함
'Java' 카테고리의 다른 글
한글 깨짐 처리를 위한 한글 필터 (0) | 2020.05.25 |
---|