본문 바로가기

Language/JAVA

[JAVA] 객체지향프로그래밍 OOP

JAVA 객체지향프로그래밍 OOP(Object Oriented Programming)

자바의 객체지향프로그래밍(OOP : Object Oriented Programming)에 대해 알아봅니다.

 


 

객체지향프로그래밍 OOP : Object Oriented Programming

현실에 존재하는 개체를 기준으로 프로그램의 구조를 모델링하는 것입니다.

프로그램을 단순히 명령어들의 집합이 아니라 독립된 묶음인 객체들의 집합으로 바라보는 것이죠.

 

특징

다형성 Polymorphoism

동일한 메소드명을 가진 메소드를 2개 이상 정의할 수 있습니다.

같은 동작을 하는 메소드인데 파라미터나 반환값의 데이터타입이 다른 경우, 메소드명을 동일하게 정의하여 가독성을 높입니다.

상속 Inheritance

이미 정의된 클래스의 요소를 재사용하고 싶으면, 해당 클래스를 상속받아 확장하여 새로운 클래스를 정의할 수 있습니다.

두 클래스는 부모-자식/마스터-서브 관계가 성립됩니다.

캡슐화 Capsulation

클래스 내부의 요소들에 접근 제어를 통해 공개 여부를 설정할 수 있습니다.

외부에는 숨기고 자신만 접근할 수 있도록 제어할 수 있습니다.

 

구성

클래스 Class

어떤 동작을 하는데 관련된 데이터(변수, 속성)와 기능/동작(메소드)을 한 묶음으로 정의하여 관리합니다.

클래스는 사용자 정의 데이터 타입입니다.

 

객체 Object

클래스를 데이터 타입으로 선언하여 new 키워드로 실제 메모리를 할당받은 인스턴스입니다.

 

구현

1. 객체 설계 Design

구현하려는 기능의 추상적인 기능 목록을 인터페이스 형태로 정의합니다.

구현하려는 클래스의 속성, 메소드를 문서 등에 나열하는 형태로 정리합니다.

클래스 멤버변수, 메소드 형태로 정의합니다.

 

2. 인터페이스(Interface) 정의

기능을 구현하지 않은 프로토타입(Proto Type) 형태의 추상 메소드를 정의합니다.

 

3. 클래스(Class) 정의

설계시 정의한 내용을 바탕으로 실제 클래스를 정의합니다.

 

4. 객체 생성 및 사용 Implementation

정의한 클래스들의 객체(인스턴스)를 생성하고, 프로그래밍합니다.

❗객체생성
new 키워드를 사용한 메모리 할당 + 생성자 호출

 

728x90