[자바 무료 강의] 자동차라는 객체 - 객체의 합성 - 코드라떼
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의자동차라는 객체 - 객체의 합성최종수정일 2021-09-07
아이콘약 6분

이번 강의는 자동차라는 현실세계의 객체를 프로그래밍의 세계로 구현해보고 객체의 합성에 대한 개념에 대해 배우는 시간입니다. 구조적인 프로그래밍과 다르게 객체들은 각 속성과 행위를 가지고 있으며 객체가 객체의 행위를 호출하는 흐름으로 진행됩니다. 계속해서 현실 세계에 있는 모든 것을 '쪼개고', '분리'하여 객체로 생각하는 습관을 가지도록 해야 합니다.

추가 노트

자동차와 관련된 소스코드는 실습도구에 있습니다.


객체의 합성(has - a)


객체와 관련된 강의에서 객체는 속성과 행위를 가지고 있다고 했었는데요. 각 객체들은 독립적인 속성과 행위를 가지고 있는데 이러한 객체들이 모여 또 하나의 객체를 만들 수 있습니다. 이것을 객체를 합성한다고 부릅니다.

자동차 객체

class Car { String name; Accelerator accelerator; Engine engine; Handle handle; Wheel wheel; Car(String name) { this.name = name; this.accelerator = new Accelerator(name); this.engine = new Engine(name); this.handle = new Handle(); this.wheel = new Wheel("빠른 바퀴"); } }
copy
Car car = new Car("이쁜 자동차");
copy

자동차는 엔진, 액셀러레이터, 핸들, 바퀴를 가지고 있습니다. 이러한 것을 가지고 있다고 해서 has - a 관계라고 부릅니다. (Car has a Engine)

그리고 이러한 자동차 객체는 엔진, 액셀러레이터, 핸들, 바퀴 객체에 의존합니다. 부품들 중 하나라도 빠지게 되면 완전한 객체가 되지 못합니다. 비정상적인 자동차가 됩니다.

자동차의 부품들에 의존하는 방법은 꼭 한 가지만 있는 것은 아닙니다. 이미 우리가 배웠던 생성자를 통해 부품들을 강제적으로 가질 수 있도록 할 수 있지요.



자동차 객체

class Car { String name; Accelerator accelerator; Engine engine; Handle handle; Wheel wheel; Car(String name, Accelerator accelerator, Engine engine, Handle handle, Wheel wheel) { this.name = name; this.accelerator = accelerator; this.engine = engine; this.handle = handle; this.wheel = wheel; } }
copy
Accelerator accelerator = new Accelerator("이쁜 자동차"); Engine engine = new Engine("이쁜 자동차"); Handle handle = new Handle(); Wheel wheel = new Wheel("빠른 바퀴"); Car car = new Car("이쁜 자동차", accelerator, engine, handle, wheel);
copy

객체의 합성이라는 개념 자체가 어려운 것은 아니나 익숙하지 않을 뿐입니다. 이후의 강의에서 배우지만 객체의 합성은 현업에서 추상화와 함께 빈번하게 사용합니다.

도전자 질문
작성된 질문이 없습니다
이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io
사업자등록번호 : 824-06-01921
통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호
파일
파일파일
Root
파일

소스 코드에 집중하기 보다는 객체와 객체 단위에 대한 것에 대해 좀 더 집중해보세요.

Output
root$
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의자동차라는 객체 - 객체의 합성최종수정일 2021-09-07
아이콘약 6분

이번 강의는 자동차라는 현실세계의 객체를 프로그래밍의 세계로 구현해보고 객체의 합성에 대한 개념에 대해 배우는 시간입니다. 구조적인 프로그래밍과 다르게 객체들은 각 속성과 행위를 가지고 있으며 객체가 객체의 행위를 호출하는 흐름으로 진행됩니다. 계속해서 현실 세계에 있는 모든 것을 '쪼개고', '분리'하여 객체로 생각하는 습관을 가지도록 해야 합니다.

추가 노트

자동차와 관련된 소스코드는 실습도구에 있습니다.


객체의 합성(has - a)


객체와 관련된 강의에서 객체는 속성과 행위를 가지고 있다고 했었는데요. 각 객체들은 독립적인 속성과 행위를 가지고 있는데 이러한 객체들이 모여 또 하나의 객체를 만들 수 있습니다. 이것을 객체를 합성한다고 부릅니다.

자동차 객체

class Car { String name; Accelerator accelerator; Engine engine; Handle handle; Wheel wheel; Car(String name) { this.name = name; this.accelerator = new Accelerator(name); this.engine = new Engine(name); this.handle = new Handle(); this.wheel = new Wheel("빠른 바퀴"); } }
copy
Car car = new Car("이쁜 자동차");
copy

자동차는 엔진, 액셀러레이터, 핸들, 바퀴를 가지고 있습니다. 이러한 것을 가지고 있다고 해서 has - a 관계라고 부릅니다. (Car has a Engine)

그리고 이러한 자동차 객체는 엔진, 액셀러레이터, 핸들, 바퀴 객체에 의존합니다. 부품들 중 하나라도 빠지게 되면 완전한 객체가 되지 못합니다. 비정상적인 자동차가 됩니다.

자동차의 부품들에 의존하는 방법은 꼭 한 가지만 있는 것은 아닙니다. 이미 우리가 배웠던 생성자를 통해 부품들을 강제적으로 가질 수 있도록 할 수 있지요.



자동차 객체

class Car { String name; Accelerator accelerator; Engine engine; Handle handle; Wheel wheel; Car(String name, Accelerator accelerator, Engine engine, Handle handle, Wheel wheel) { this.name = name; this.accelerator = accelerator; this.engine = engine; this.handle = handle; this.wheel = wheel; } }
copy
Accelerator accelerator = new Accelerator("이쁜 자동차"); Engine engine = new Engine("이쁜 자동차"); Handle handle = new Handle(); Wheel wheel = new Wheel("빠른 바퀴"); Car car = new Car("이쁜 자동차", accelerator, engine, handle, wheel);
copy

객체의 합성이라는 개념 자체가 어려운 것은 아니나 익숙하지 않을 뿐입니다. 이후의 강의에서 배우지만 객체의 합성은 현업에서 추상화와 함께 빈번하게 사용합니다.

도전자 질문
작성된 질문이 없습니다
이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io|운영시간 09:00 - 18:00(평일)
사업자등록번호 : 824-06-01921|통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호(경기창조혁신센터)
파일
파일파일
Root
파일

소스 코드에 집중하기 보다는 객체와 객체 단위에 대한 것에 대해 좀 더 집중해보세요.

Output
root$