728x90
📌 현실세계에서 어떠한 제품을 만들기 위해 부품들을 하나씩 조립해서 완성시키는 것 처럼 소프트웨어 또한 필요한 부품들을 만들고 하나씩 조립해서 하나의 완성된 프로그램을 만들 수 있는데 이러한 기법을 ‘객체지향 프로그래밍’이라고 부릅니다.
1. 객체란?
- 객체는 세상에 존재하는 물체를 뜻하며 식별이 가능한 것을 의미
- 객체는 속성과 행위로 구성
- 자동차를 속성과 행위로 표현
- 자동차는 회사, 모델, 색상, 가격, 속도 등의 속성을 가질 수 있음
- 자동차는 가속, 브레이크, 기어변속, 조명, 경적등의 행위를 가질 수 있음
- java에서 이러한 속성과 행위를 필드와 메서드로 정의하여 구현할 수 있음
- 자동차를 속성과 행위로 표현
이처럼 현실 세계에 있는 객체를 소프트웨어의 객체로 설계하는 것을 객체 모델링이라고 함
2. 객체 간의 협력
현실 세계에서 사람이라는 객체와 자동차라는 객체는 서로 행위를 통해 상호작용을 하며 협력할 수 있다.
- 사람이 자동차의 가속 페달을 밟으면 자동차는 이에 반응해 속도를 올리며 앞으로 이동한다.
- 사람이 자동차의 브레이크 페달을 밟으면 자동차는 이에 반응하여 속도를 줄이며 정지한다.
소프트웨어의 객체들 끼리 상호작용은 JAVA의 메서드를 통해 이루어진다.
- 사람 객체는 자동차 객체가 가지고 있는 가속 페달이라는 gaspedal(); 메서드를 호출한다.
- 그러면 자동차 객체는 이에 반응해 속도 속성의 값을 증가 시킨다.
- 사람 객체는 자동차 객체가 가지고 있는 브레이크 페달 이라는 메서드 brakePedal(); 를 호출한다
- 자동차 객체는 이에 반응해 속도 속성의 값을 감소 시킨다.
- 또한 소프트웨어의 객체들은 메서드를 통해 데이터를 주고 받을 수도 있다.
- 사람 객체는 메서드를 호출할 때 괄호() 안에 데이터를 넣어 호출할 수 있는데 이때 이괄호안에 넣는 데이터를 파라미터 혹은 매개값 이라고 표현한다
사람 객체는 gasPedal(50); 이렇게 메서드 괄호 안에 50의 매개값을 넣어 호출한다.
- 그러면 자동차 객체는 해당하는 50의 데이터를 전달 받아 자동차 객체의 속성인 속도의 값을 50으로 만든다.
- 또한 자동차 객체는 gasPedal(50); 메서드에서 속도를 바꾸는 작업을 수행한 후 사람 객체에게 실행 결과인 속도의 값을 반환할 수 있다. 이때 반환되는 값을 리턴값 이라고 표현한다.
3. 객체 간의 관계
현실세카이(セカイ)에서의 객체는 수많은 관계를 맺고 살아간다.
ex) 사람 객체는 자동차 객체를 사용하는 '사용의 관계' 를 맺고 있음
소프트 웨어의 객체 간의 관계
중간 복습) 객체지향 프로그래밍은 필요한 부품들을 만들고 하나씩 조립해서 하나의 완성된 프로그램을 만드는 기법
ex) 현실 세계의 자동차
- 현실 세카이에서 자동차를 만들기 위해서는 수많은 부품이 필요
- 타이어, 차문, 핸들등이 필요
이를 소프트웨어의 객체 간의 관계로 표현
1. 사용 관계
- 사람 객체는 자동차 객체를 사용한다.
2. 포함 관계
- 타이어 객체, 차문 객체, 핸들 객체는 자동차 객체에 포함되어 있습니다.
3. 상속 관계
- 만약 공장에 자동차만 생산하는게 아니라 기차도 생산한다고 가정해보면
- 자동차와 기차 객체는 하나의 공통된 기계시스템 객체를 토대로 만들어진다고 가정해보면
- 그렇다면 자동차 객체와 기차 객체는 기계시스템 객체의 상속 받는 상속 관계가 된다.
'JAVA' 카테고리의 다른 글
[JAVA] 클래스 설계 (0) | 2023.05.29 |
---|---|
[JAVA] 객체지향 프로그래밍 이해하기 (2) (0) | 2023.05.29 |
[JAVA] JVM 구조와 메모리 영역 (0) | 2023.05.28 |
[JAVA] 참조형 배열로 정리하기 (컬렉션) (0) | 2023.05.27 |
[JAVA] 배열 (2) | 2023.05.26 |