반응형
21. 간단한 클래스 정의: Car 클래스 정의하기
문제: Car 클래스를 정의하고 make와 model 속성을 설정하세요.
답변 및 설명
클래스는 객체의 설계를 정의하는 청사진으로, 속성과 메서드를 포함합니다.
Car 클래스를 정의하고 두 개의 속성, make와 model을 설정합니다.
class Car {
String make;
String model;
Car(this.make, this.model);
}
- Car 클래스에는 make와 model 두 개의 속성이 있습니다.
- 생성자 Car(this.make, this.model)를 사용하여 속성을 초기화합니다.
22. 객체 생성하기: Car 클래스의 객체 생성 및 속성 출력
문제: Car 클래스의 객체를 생성하고 속성을 출력하세요.
답변 및 설명
클래스를 정의한 후에는 객체를 생성하고 속성에 접근할 수 있습니다.
void main() {
// Car 클래스의 객체를 생성합니다.
Car myCar = Car('Toyota', 'Corolla');
// 객체의 속성을 출력합니다.
print('Make: ${myCar.make}');
print('Model: ${myCar.model}');
}
- Car 클래스의 객체 myCar를 생성하고, make와 model 속성에 접근하여 출력합니다.
23. 생성자 사용하기: 생성자를 사용하여 Car 객체의 속성 초기화
문제: 생성자를 사용하여 Car 객체의 속성을 초기화하세요.
답변 및 설명
생성자를 사용하여 객체를 생성하면서 속성을 초기화할 수 있습니다.
// Car 클래스 정의
class Car {
// 속성 선언
String make;
String model;
// 생성자 정의
Car(this.make, this.model); // 생성자 파라미터를 통해 속성을 초기화
}
위의 예제에서 생성자를 통해 make와 model 속성을 초기화했습니다.
24. 클래스 메서드: 차량 정보를 출력하는 메서드 추가
문제: Car 클래스에 차량 정보를 출력하는 메서드를 추가하고 호출하세요.
답변 및 설명
클래스에 메서드를 추가하여 객체의 상태를 출력하거나 조작할 수 있습니다.
class Car {
String make;
String model;
Car(this.make, this.model);
// 차량 정보를 출력하는 메서드 추가
void displayInfo() {
print('Car Make: $make');
print('Car Model: $model');
}
}
void main() {
// Car 클래스의 객체를 생성합니다.
Car myCar = Car('Toyota', 'Corolla');
// 메서드를 호출하여 차량 정보를 출력합니다.
myCar.displayInfo();
}
- displayInfo() 메서드는 차량 정보를 출력합니다.
- myCar.displayInfo()를 호출하여 정보를 출력합니다.
5. 상속 사용하기: ElectricCar 클래스 정의 및 상속
문제: ElectricCar 클래스를 Car 클래스로부터 상속받고 추가 속성을 정의하세요.
답변 및 설명
상속을 사용하면 기존 클래스를 기반으로 새로운 클래스를 정의할 수 있습니다. ElectricCar 클래스는 Car 클래스를 상속받아 추가 속성을 정의합니다.
class ElectricCar extends Car {
int batteryLife; // 추가 속성
ElectricCar(String make, String model, this.batteryLife)
: super(make, model);
// 전기차 정보를 출력하는 메서드 추가
void displayElectricInfo() {
displayInfo(); // 부모 클래스의 메서드 호출
print('Battery Life: $batteryLife hours');
}
}
void main() {
// ElectricCar 클래스의 객체를 생성합니다.
ElectricCar myElectricCar = ElectricCar('Tesla', 'Model S', 12);
// 메서드를 호출하여 전기차 정보를 출력합니다.
myElectricCar.displayElectricInfo();
}
- ElectricCar 클래스는 Car 클래스를 상속받으며, batteryLife라는 추가 속성을 정의합니다.
- displayElectricInfo() 메서드는 부모 클래스의 displayInfo() 메서드를 호출하여 일반 차량 정보와 함께 배터리 수명을 출력합니다.
이와 같은 클래스를 정의하고 객체를 사용하는 방식은 Dart에서 객체 지향 프로그래밍을 실현하는 데 필수적인 기법입니다.
반응형
'Dart > Dart 100제' 카테고리의 다른 글
Dart 100제 31 ~ 35 (파일 입출력) (2) | 2024.07.24 |
---|---|
Dart 100제 26 ~ 30 (Map와 Set) (2) | 2024.07.24 |
Dart 100제 16 ~ 20 (함수와 메서드) (0) | 2024.07.21 |
Dart 100제 11 ~ 15 (리스트) (0) | 2024.07.21 |
Dart 100제 6 ~ 10 (조건문과 반복문) (0) | 2024.07.21 |