본문 바로가기
개발 관련 지식/JAVA

객체 지향 프로그래밍

by 권태일1147 2020. 3. 29.

객체

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

객체는 속성동작으로 구성되어 있다. 자동차로 예를 들면 색상, 모델명 등이 속성이고 달린다, 멈춘다 등이 동작이다.

자바에서는 속성을 필드(field), 동작을 메소드(method)라고 한다.

 

현실 시계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링이라고 한다. 즉, 현실 세계 객체의 속성과 동작을 소프트웨어의 필드와 메소드로 정의하는 과정이다.

 

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

추상화

어떤 영역에서 필요로 하는 공통의 필드나 메소드를 추출하는 것이다. 공통된 추상적인 특징을 파악해서 이를 하나의 개념으로 다룬다는 것이다. 추상적인 공통점들을 클래스로 만들어 놓고, 상세한 부분을 채워나가는 것이다. 예를 들면 hp, mp가 공통적인 부분이고 전사, 마법사 등의 세세한 부분을 별개로 설정하는 것이다.

캡슐화

객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말한다. 외부 객체는 캡슐화된 객체 내부의 구조를 알지 못하며 캡슐화된 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다.

캡슐화를 하는 이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하는데 있다.

 

상속

상속은 부모 역할의 상위 객체가 자식 역할의 하위 객체에 자신의 필드와 메소드를 물려주어 하위 객체가 사용할 수 있도록 하는 것이다.

상속은 상위 객체의 수정으로 모든 하위 객체들의 수정 효과를 가져오기 때문에 유지 보수 시간을 최소화 시켜주기도 한다.

 

다형성

하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 해준다. 부모 타입에는 모든 자식 객체가 대입될 수 있고, 인터페이스 타입에는 모든 구현 객체가 대입될 수 있다.

'개발 관련 지식 > JAVA' 카테고리의 다른 글

싱글톤(Singleton)  (0) 2020.03.31
객체와 클래스  (0) 2020.03.30
Spring boot - 5. JPA test CRUD 만들기  (1) 2020.03.23
Spring boot - 4. JPA 설정  (0) 2020.03.22
annotation processor 란  (0) 2020.03.21