반응형
이제, class 객체를 일부 변수만 가져와서 intialize하는 방법을 알아보자.
다음의 두 constructor들을 만들 것이다.
- xp = 0인 blue팀 player 생성 -> createBluePlayer
- xp = 0인 red팀 player 생성 -> createRedPlayer
class Player {
final String name;
// 아래처럼 한번에 선언할 수도 있다.
int xp, age;
String team;
// 변수 순서 안중요함.
Player(
{required this.name,
required this.xp,
required this.team,
required this.age});
// ':' 뒤 -> class initialize
// named parameter 이용하는 경우
Player.createBluePlayer({
required String name,
required int age,
}) : this.age = age,
this.name = name,
this.team = 'blue',
this.xp = 0;
// positional parameter를 이용하는 경우
Player.createRedPlayer(String name, int age)
: this.age = age,
this.name = name,
this.team = 'red',
this.xp = 0;
void sayHello() {
print("Hi my name is $name");
}
}
':' (colon)뒤가 핵심이다.
name과 age를 불러온 후에 colon 뒤에서 변수를 초기화 해서 constructor를 생성한다.
이를 사용하려면 다음과 같이 사용하면 된다.
void main() {
var player = Player.createBluePlayer(name: "me", age: 25);
var player2 = Player.createRedPlayer("me", 21);
}
createBluePlayer는 named parameter를 이용하며, createRedPlayer는 positional parameter를 사용했다.
그래서 createRedPlayer는 변수의 순서가 중요함을 잊지 말자.
특이하면서 꽤 직관적인 문법이다...
반응형
'앱 만들기 프로젝트 > Dart' 카테고리의 다른 글
Dart - 4.6 Enums (1) | 2024.10.16 |
---|---|
Dart - 4.5 Cascade Notation (0) | 2024.10.16 |
Dart - 4.2 Named Constructor Parameters (0) | 2024.10.16 |
Dart - 4.1 Constructors(생성자) (0) | 2024.10.16 |
Dart - 4.0 Your First Dart Class (0) | 2024.10.16 |