[이것이 자바다] 책으로 공부하고 정리하는 글
객체지향 프로그래밍
OOP = Object Oriented Programming
객체를 만들고 이를 조립해 완성된 프로그램을 만드는 프로그래밍 기법
객체(Object)란?
물리적 혹은 추상적인 것들 중 속성과 동작을 가지는 모든 것.
객체는 필드(속성)와 메소드(동작)로 구성된 자바 객체로 모델링 할 수 있다.
현실세계의 객체를 소프트웨어 객체로 만드는 과정을 소프트웨어 객체 모델링이라고 한다.
객체의 상호작용
객체들은 서로 간에 메소드를 사용해 데이터를 주고 받는다.
객체 지향 프로그램에서 객체는 다른 객체와 여러 관계를 맺고 있다.
관계의 종류
- 집합 관계 : 완성품과 부품의 관계 (ex: 자동차 - 엔진, 타이어, 핸들)
- 사용 관계 : 객체가 다른 객체를 사용하는 관계 (ex: 사람 - 자동차)
- 상속 관계 : 종류 객체와 구체적인 사물 객체의 관계 (ex: 자동차 - 기계)
객체 지향 프로그래밍의 특징
캡슐화
객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용은 외부로부터 감추는 것을 말한다.
외부 객체는 객체 내부의 구조를 알지 못하며, 객체가 노출하는 필드와 메소드만 사용할 수 있다.
필드와 메소드를 캡슐화하여 보호하는 이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하는 데 있다.
자바 언어는 필드와 메소드의 노출 여부를 결정하기 위해 접근제한자를 사용한다.
상속
상위(부모) 객체의 필드와 메소드를 하위(자식) 객체에게 물려주는 것.
하위 객체는 상위 객체를 확장해서 추가적인 필드와 메소드를 가질 수 있다.
상속의 효과
- 상위 객체를 사용해 하위 객체를 빨리 개발할 수 있다.
- 반복된 코드의 중복을 줄여준다.
- 유지 보수의 편리성을 제공해준다.
- 객체의 다형성을 구현할 수 있다.
= 생산성 ↑. 유지보수 편함.
다형성
같은 타입이지만 실행 결과가 다양한 객체를 대입할 수 있는 성질.
ex) 부모 타입에는 모든 자식 객체가 대입, 인터페이스 타입에는 모든 구현 객체가 대입
객체를 부품화시킬 수 있고, 유지보수가 용이하다는 효과가 있다.
다형성을 구현하는 방법에는 상속과 인터페이스 2가지가 있다.
'공부 > JAVA' 카테고리의 다른 글
[클래스] Class(2) (0) | 2020.06.04 |
---|---|
[클래스] Class (1) (0) | 2020.06.04 |