생성자 기초
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 RetrieverDart는 매개변수 목록에서 this.variableName을 직접 using하는 shorthand constructor syntax도 제공합니다:
class Dog {
String name;
String breed;
// 단축 구문: 매개변수를 인스턴스 변수에 자동으로 할당합니다
Dog(this.name, this.breed);
}두 버전은 동일한 결과를 생성합니다. shorthand는 this.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를 수동으로 설정할 필요가 없게 합니다.
챌린지
쉬움book.dart 및 driver.dart PHP 파일이 주어졌으며, 이를 사용하여 책 시스템을 구현합니다.
작업:
book.dart의Bookclass를 완성하고title,author,pages를 초기화하는 constructor를 추가하세요. Dart shorthand syntax인Book(this.title, this.author, this.pages);를 사용하세요.driver.dart에서'Harry Potter'를 제목으로,'J.K. Rowling'을 저자로 하며400pages인Bookobject를 생성하세요.
각 파일의 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");
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
객체 지향 프로그래밍의 모든 레슨
직접 연습해 보세요: 온라인 Dart 컴파일러