class 안에서 property를 선언할때에는 타입을 사용해서 정의해야한다.
class Player {
String name = 'gunyong';
int age = 25;
}
void main() {
var player = Player();
print(player.name);
}
위에서 name의 값을 변화시키는 것을 방지하려면
class Player {
final String name = 'gunyong';
int age = 25;
}
final 을 붙여준다
method를 설정해줄 때에는
class Player {
final String name = 'gunyong';
int age = 25;
void sayhello() {
print('hello $name!');
}
}
dart에서는 this 사용을 지양한다
constructor 만들어주기
class Player {
final String name;
int age;
Player(this.name, this.age);
void sayHello() {
print('hello $name! i am $age old');
}
}
void main() {
var player = Player('gunyong', 20);
player.sayHello();
}
class 를 좀 더 동적으로 만들기 위해서 constructor를 만들어주는데 dart에서는 class명과 동일하게 constructor를 만들어준다.
parameter가 많아질수록 가독성이 떨어지기 때문에 named parameter를 설정해서 나타내주면 가독성을 높일 수 있다.
class Player {
final String name;
int age;
String team;
int money;
Player({
required this.name,
required this.age,
required this.team,
required this.money,
});
void sayHello() {
print('hello $name! i am $age old');
}
}
void main() {
var player = Player(
name: 'gunyong',
age: 12,
team: 'red',
money: 1000,
);
var player2 = Player('yonggun', 25, 'blue', 2000);
player.sayHello();
player2.sayHello();
}
player 하고 player2의 내장 값을 비교해서 보면 player의 값이 더 가독성이 높은 걸 볼 수 있다.
named parameter / positioned parameter의 쓰임새에 대해 더 공부해봐야겠디