Programming/Java

[Java 자바] 6. 클래스 ① 객체지향 프로그래밍, 객체와 클래스

erinh 2022. 7. 30. 23:49
반응형

6-1. 객체 지향 프로그래밍

6-1-1. 객체란?

- 객체는 속성과 동작으로 구성, 자바에서는 이를 필드(Field)메소드(Method)라고 부름
- 객체 모델링(Object Modeling): 현실 세계의 객체를 소프트웨어 객체로 설계하는 것

6-1-2. 객체의 상호작용

- 소프트웨어는 다른 객체와 서로 상호작용하면서 동작
- 객체들 사이의 상호작용 수단 : 메소드
- 객체가 다른 객체의 기능을 이요하는 것: 메소드 호출

// Calculator라는 객체에 변수 2개를 더하는 메소드가 있을 경우,
// result에 아래와 같은 방법으로 객체의 메소드에 접근해 값을 저장할 수 있음.
int result = Calculator.add(10,20);

6-1-3. 객체 간의 관계

- 객체 지향 프로그래밍 (OOP: Object Oriented Programming)
 : 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라,
   수많은 객체라는 기본 단위로 나누어 이들의 상호작용으로 서술하는 방식

6-1-4. 객체 지향 프로그래밍의 특징: A PIE

1) Abstraction (추상화)

: 객체들의 공통된 특징을 파악해 정의 해 놓은 설계 기법
- 목적과 관련 없는 부분을 제거하여 필요한 부분만을 표현하기 위한 개념 

2) Polymorphism (다형성)

: 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질
- 오버라이딩과, 오버로딩이 대표적인 개념
- 하나의 타입에 여러 객체를 대입함으로써 다양한 기능 이용 가능

3) Inheritance(상속)

: 상위 객체가 가지고 있는 필드와 메소드를 하위 객체에게 물려주어 이를 사용할 수 있도록 하는 개념
- 상위객체 = 부모객체 = 슈퍼객체
- 하위객체 = 자식객체 = 서브객체
- 이 때, 자식객체는 기존 객체에 없던 새로운 필드나 메소드 추가 가능

4) Encapsulation (캡슐화)

: 객체의 필드, 메소드를 하나로 묶고 실제 구현 내용을 감춰 외부에서 접근이 불가능하게 만드는 것

6-2. 객체와 클래스

- 객체를 만들기 위해선 설계도가 필요하며, 자바에서는 이를 클래스라고 한다.

- 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있음
- 인스턴스(instance): 클래스로부터 만들어진 객체

- 인스턴스화: 클래스로부터 객체를 만드는 과정

반응형