이번 강의는 자동차라는 현실세계의 객체를 프로그래밍의 세계로 구현해보고 객체의 합성에 대한 개념에 대해 배우는 시간입니다. 구조적인 프로그래밍과 다르게 객체들은 각 속성과 행위를 가지고 있으며 객체가 객체의 행위를 호출하는 흐름으로 진행됩니다. 계속해서 현실 세계에 있는 모든 것을 '쪼개고', '분리'하여 객체로 생각하는 습관을 가지도록 해야 합니다.
자동차와 관련된 소스코드는 실습도구에 있습니다.
ㅤ
객체와 관련된 강의에서 객체는 속성과 행위를 가지고 있다고 했었는데요. 각 객체들은 독립적인 속성과 행위를 가지고 있는데 이러한 객체들이 모여 또 하나의 객체를 만들 수 있습니다. 이것을 객체를 합성한다고 부릅니다.
자동차 객체
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("빠른 바퀴");
}
}
Car car = new Car("이쁜 자동차");
자동차는 엔진, 액셀러레이터, 핸들, 바퀴를 가지고 있습니다. 이러한 것을 가지고 있다고 해서 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;
}
}
Accelerator accelerator = new Accelerator("이쁜 자동차");
Engine engine = new Engine("이쁜 자동차");
Handle handle = new Handle();
Wheel wheel = new Wheel("빠른 바퀴");
Car car = new Car("이쁜 자동차", accelerator, engine, handle, wheel);
객체의 합성이라는 개념 자체가 어려운 것은 아니나 익숙하지 않을 뿐입니다. 이후의 강의에서 배우지만 객체의 합성은 현업에서 추상화와 함께 빈번하게 사용합니다.
강의를 보던 중 궁금한 사항이있어 글을쓰게되었습니다. 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("빠른 바퀴"); } } 강의는 이런 식으로 Car 생성자가 실행되면서 각각의 인스턴스들이 실행되면서 name이 각각의 생성자에 참조되도록 실행되도록 한거같은데 혹시 그러면 name참조 할 생각이 없고 각각의 값을 넣게 된다면 String carName; Engine engine = new Engine("포르쉐"); Accelerator accelerator = new Accelerator("오른쪽","왼쪽"); Handle handle= new Handle(); Wheel wheel= new Wheel("멋진"); 이런식으로 인스턴스를 만들어도될까요??
강의 1:49 부분에 void 가 붙은 메서드는 반환하지 않는다고 했던거 같은데 if문에 return이 들어가는 이유가 무엇인지 궁금합니다... 느낌은 뒷부분 진행하지 않고 if문 에서 메서드가 끝나는거 같은데 정확히는 모르겠습니다
안녕하세요. 코드라떼입니다 :) 말씀하신대로 실행흐름에서 return 키워드를 만나면 메서드는 그 즉시 종료됩니다. return 값이 존재하는 메서드와 return 값이 존재하지 않는 메서드가 있는데 return 값이 존재하지 않는 메서드에서는 반환값 없이 return 키워드를 사용하여 메서드를 종료할 수 있습니다. 반환값이 존재하지 않는 메서드에서는 return 키워드는 필수가 아니며 상황에 따라 적절히 사용할 수 있습니다. ps. 추가로 강의 1:49부분에서 return 키워드를 작성하지 않고도 if else를 이용해도 원하는 목적의 코드를 작성할 수 있습니다. return을 사용한 이유는 최대한 다양한 예시를 보여드리려고 return 키워드를 작성했습니다. 감사합니다 :)
소스 코드에 집중하기 보다는 객체와 객체 단위에 대한 것에 대해 좀 더 집중해보세요.
이번 강의는 자동차라는 현실세계의 객체를 프로그래밍의 세계로 구현해보고 객체의 합성에 대한 개념에 대해 배우는 시간입니다. 구조적인 프로그래밍과 다르게 객체들은 각 속성과 행위를 가지고 있으며 객체가 객체의 행위를 호출하는 흐름으로 진행됩니다. 계속해서 현실 세계에 있는 모든 것을 '쪼개고', '분리'하여 객체로 생각하는 습관을 가지도록 해야 합니다.
자동차와 관련된 소스코드는 실습도구에 있습니다.
ㅤ
객체와 관련된 강의에서 객체는 속성과 행위를 가지고 있다고 했었는데요. 각 객체들은 독립적인 속성과 행위를 가지고 있는데 이러한 객체들이 모여 또 하나의 객체를 만들 수 있습니다. 이것을 객체를 합성한다고 부릅니다.
자동차 객체
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("빠른 바퀴");
}
}
Car car = new Car("이쁜 자동차");
자동차는 엔진, 액셀러레이터, 핸들, 바퀴를 가지고 있습니다. 이러한 것을 가지고 있다고 해서 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;
}
}
Accelerator accelerator = new Accelerator("이쁜 자동차");
Engine engine = new Engine("이쁜 자동차");
Handle handle = new Handle();
Wheel wheel = new Wheel("빠른 바퀴");
Car car = new Car("이쁜 자동차", accelerator, engine, handle, wheel);
객체의 합성이라는 개념 자체가 어려운 것은 아니나 익숙하지 않을 뿐입니다. 이후의 강의에서 배우지만 객체의 합성은 현업에서 추상화와 함께 빈번하게 사용합니다.
강의를 보던 중 궁금한 사항이있어 글을쓰게되었습니다. 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("빠른 바퀴"); } } 강의는 이런 식으로 Car 생성자가 실행되면서 각각의 인스턴스들이 실행되면서 name이 각각의 생성자에 참조되도록 실행되도록 한거같은데 혹시 그러면 name참조 할 생각이 없고 각각의 값을 넣게 된다면 String carName; Engine engine = new Engine("포르쉐"); Accelerator accelerator = new Accelerator("오른쪽","왼쪽"); Handle handle= new Handle(); Wheel wheel= new Wheel("멋진"); 이런식으로 인스턴스를 만들어도될까요??
강의 1:49 부분에 void 가 붙은 메서드는 반환하지 않는다고 했던거 같은데 if문에 return이 들어가는 이유가 무엇인지 궁금합니다... 느낌은 뒷부분 진행하지 않고 if문 에서 메서드가 끝나는거 같은데 정확히는 모르겠습니다
안녕하세요. 코드라떼입니다 :) 말씀하신대로 실행흐름에서 return 키워드를 만나면 메서드는 그 즉시 종료됩니다. return 값이 존재하는 메서드와 return 값이 존재하지 않는 메서드가 있는데 return 값이 존재하지 않는 메서드에서는 반환값 없이 return 키워드를 사용하여 메서드를 종료할 수 있습니다. 반환값이 존재하지 않는 메서드에서는 return 키워드는 필수가 아니며 상황에 따라 적절히 사용할 수 있습니다. ps. 추가로 강의 1:49부분에서 return 키워드를 작성하지 않고도 if else를 이용해도 원하는 목적의 코드를 작성할 수 있습니다. return을 사용한 이유는 최대한 다양한 예시를 보여드리려고 return 키워드를 작성했습니다. 감사합니다 :)
소스 코드에 집중하기 보다는 객체와 객체 단위에 대한 것에 대해 좀 더 집중해보세요.