반응형
class Player {
late final String name;
late int xp;
Player(String name, int xp) {
this.name = name;
this.xp = xp;
}
void sayHello() {
print("Hi, my name is $name");
}
}
void main() {
var player = Player("Pau", 500);
player.sayHello();
}
class Player {
late final String name;
late int xp;
Player(this.name, this.xp);
void sayHello() {
print("Hi, my name is $name");
}
}
void main() {
var player = Player("PL", 500);
player.sayHello();
var player2 = Player("YJ", 100);
player2.sayHello();
}
한 번 String name에다가 선언하면 final 이 있기 때문에 player2에 넣는 것이 불가능하지 않남....
궁금.............
>> 왜냐하면 새로운 객체이기 때문에!
마치 player1은 새로운 객체/ 새로운 존재
마치 다른 세계의 player객체 하나여서 다른 세계의 Player는 영향을 주지 않는다고 생각하면 될 것 가타.
복습
class Player {
late final String name;
late int xp;
// late, this value will be defined "late"
Player(String name, int xp) {
this.name = name;
this.xp = xp;
}
void sayHello() {
print("Hi, my name is $name");
// unless you made a variable named with 'name'
// we don't use like $this.name
}
}
void main() {
var player = Player("nico", 1500);
// we don't have to write like new Player();
player.sayHello();
var player2 = Player("Ronaldo", 3000);
player2.sayHello();
}
// if I don't want this to be modified
Player 생성자 부분에 집중해보자
Player(String name, int xp) {
this.name = name;
this.xp = xp;
}
이 부분이 Dart 에서는 아래와 같이 한 줄로 정리될 수 있다. (어메이징,,,!)
Player(this.name, this.xp);
반응형
'DART' 카테고리의 다른 글
[노마드코더 : Dart 시작하기] #4.3 Named Constructors (0) | 2022.11.20 |
---|---|
[노마드코더 : Dart 시작하기] #4.2 Named Constructor Parameters (0) | 2022.11.20 |
[노마드코더 : Dart 시작하기] #4.0 Your First Dart Class (0) | 2022.11.19 |
[노마드코더 : Dart 시작하기] #3.5 Typedef (0) | 2022.11.18 |
[노마드코더 : Dart 시작하기] #3.4 QQ Operator (0) | 2022.11.18 |