| Dart 시작하기 - Classes
https://nomadcoders.co/dart-for-beginners/lectures/4113
1. Class - 생성자 X
class Player {
final String name = 'Hong';
int xp = 100;
void sayHello(){
// this.name 처럼 this를 사용하지 않아도 된다.
print("The name is $name");
}
}
void main() {
var player1 = new Player();
print(player1.name);
player1.xp = 120;
print(player1.xp);
// player1.name = 'change'; --> Error! (final이 들어가면 바꿀 수 없음)
player1.sayHello();
}
2. 생성자
// 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");
// }
// }
class Player {
final String name;
int xp;
Player(this.name, this.xp);
void sayHello(){
print("Hi my name is $name");
}
}
void main(){
var player = new Player('test', 100);
player.sayHello();
}
3. Named Constructor Parameter
class Player {
final String name;
int xp;
String team;
int age;
Player({
required this.name,
required this.xp,
required this.team,
required this.age
});
void sayHello(){
print("Hi my name is $name");
}
}
void main(){
// 너무 많은 Positional Argument -> 복잡하다.
// var player = new Player('test', 100, 'red', 100);
// player.sayHello();
// Named Argument
var player1 = new Player(
name: 'test',
xp: 1200,
team: 'blue',
age: 21
);
player1.sayHello();
var player2 = new Player(
name: 'test',
xp: 1200,
team: 'blue',
age: 21
);
player2.sayHello();
}
4. Named Constructors
class Player {
final String name;
int xp, age;
String team;
// Named Constructor Parameters
Player({
required this.name,
required this.xp,
required this.team,
required this.age
});
// Named Constructors
Player.createBluePlayer({
required String name,
required int age
}) :
this.age = age,
this.name = name,
this.team = 'blue',
this.xp = 0;
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");
}
}
void main(){
// 너무 많은 Positional Argument -> 복잡하다.
// var player = new Player('test', 100, 'red', 100);
// player.sayHello();
// Named Argument
var player1 = Player.createBluePlayer(
name: 'test',
age: 21
);
player1.sayHello();
var player2 = Player.createRedPlayer('test',21);
player2.sayHello();
}
class Player {
final String name;
int xp;
String team;
// Named Constructor Parameters
Player({
required this.name,
required this.xp,
required this.team,
});
// Named Constructors
Player.fromJson(Map<String, dynamic> playerJson)
: name = playerJson['name'],
team = playerJson['team'],
xp = playerJson['xp'];
void sayHello(){
print("Hello My name is $name");
}
}
void main(){
var apiData = [
{
'name': 'nico',
'team': 'red',
'xp': 0
},
{
'name': 'nico',
'team': 'red',
'xp': 0
},
{
'name': 'nico',
'team': 'red',
'xp': 0
}
];
apiData.forEach((playerJson) {
var player = Player.fromJson(playerJson);
player.sayHello();
});
}
'Frontend > Dart,Flutter' 카테고리의 다른 글
Dart 시작하기 - Optional Positional Parameter, QQ operator, Typedef (0) | 2023.05.27 |
---|---|
Dart 시작하기 - 함수, Named Parameters (0) | 2023.05.27 |
Dart 시작하기 - 데이터 타입 (0) | 2023.05.27 |
Dart 시작하기 - 변수 (0) | 2023.05.26 |