Menu
Coddy logo textTech

생성자 기초

Coddy Dart 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 110개 중 8번째.

생성자는 새로운 object를 만들 때 자동으로 실행되는 특수 메서드입니다. 생성되는 순간 바로 객체의 인스턴스 변수를 초기화합니다.

다음은 constructor가 있는 class의 예입니다:

class Dog {
  String name;
  String breed;

  Dog(String name, String breed) {
    this.name = name;
    this.breed = breed;
  }
}

constructor는 class와 이름이 같습니다. object를 생성할 때 parameters가 전달됩니다.

constructor에 인수를 전달하여 object를 생성하세요:

Dog rex = Dog('Rex', 'German Shepherd');
Dog buddy = Dog('Buddy', 'Golden Retriever');

생성자가 설정한 변수에 액세스하세요:

print(rex.name);
print(rex.breed);
print(buddy.name);
print(buddy.breed);

출력:

Rex
German Shepherd
Buddy
Golden Retriever

Dart는 매개변수 목록에서 this.variableName을 직접 using하는 shorthand constructor syntax도 제공합니다:

class Dog {
  String name;
  String breed;

  // 단축 구문: 매개변수를 인스턴스 변수에 자동으로 할당합니다
  Dog(this.name, this.breed);
}

두 버전은 동일한 결과를 생성합니다. shorthandthis.name = name을 수동으로 작성할 필요를 없애 주는 인기 있는 Dart 기능입니다.

기본 매개변수 값도 추가할 수 있습니다:

class Cat {
  String name;
  int age;

  Cat(this.name, [this.age = 1]); // age 기본값은 1
}

Cat fluffy = Cat('Fluffy', 3);
Cat whiskers = Cat('Whiskers'); // age 기본값은 1

print('${fluffy.name} is ${fluffy.age}');    // Fluffy는 3
print('${whiskers.name} is ${whiskers.age}'); // Whiskers는 1

핵심 요점: 생성자는 모든 object가 생성되는 순간 데이터로 올바르게 초기화되도록 하여, 이후에 variables를 수동으로 설정할 필요가 없게 합니다.

challenge icon

챌린지

쉬움

book.dartdriver.dart PHP 파일이 주어졌으며, 이를 사용하여 책 시스템을 구현합니다.

작업:

  • book.dartBook class를 완성하고 title, author, pages를 초기화하는 constructor를 추가하세요. Dart shorthand syntax인 Book(this.title, this.author, this.pages);를 사용하세요.
  • driver.dart에서 'Harry Potter'를 제목으로, 'J.K. Rowling'을 저자로 하며 400 pages인 Book object를 생성하세요.

각 파일의 TODO 주석을 따르세요.

직접 해보기

import 'book.dart';

void main() {
  // TODO: Book 객체를 다음과 같이 생성하세요:
  // title: 'Harry Potter', author: 'J.K. Rowling', pages: 400
  Book myBook = ?;

  print("'${myBook.title}' by ${myBook.author}, ${myBook.pages} pages");
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

객체 지향 프로그래밍의 모든 레슨

직접 연습해 보세요: 온라인 Dart 컴파일러