본문 바로가기
Dart/Dart 100제

Dart 100제 21 ~ 25 (클래스와 객체)

by Maccrey Coding 2024. 7. 22.
반응형

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에서 객체 지향 프로그래밍을 실현하는 데 필수적인 기법입니다.

 

반응형