Skip to content

Commit 6b8e80e

Browse files
committed
10/15
class recap까지
1 parent 0949915 commit 6b8e80e

File tree

1 file changed

+190
-1
lines changed

1 file changed

+190
-1
lines changed

classes.dart

Lines changed: 190 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,194 @@ void main() {
1616
print(player.name);
1717
player.sayHello();
1818
}
19+
#4.1
20+
class Player {
21+
late final String name;
22+
late int xp;
23+
24+
Player(String name, int xp) {
25+
//constructors함수는 class와 이름이 같아야함
26+
this.name = name;
27+
this.xp = xp;
28+
}
29+
30+
void sayHello() {
31+
print("my name is $name");
32+
}
33+
}
34+
35+
void main() {
36+
var player = Player("nico", 1500);
37+
player.sayHello();
38+
var player2 = Player("sunwoo", 3000);
39+
player2.sayHello();
40+
41+
==간략화==
42+
43+
class Player {
44+
final String name;
45+
int xp;
46+
47+
Player(this.name, this.xp);
48+
//타입을 위에 이미 정해줬가 떄문에 this만 붙여도 가능하다.
49+
50+
void sayHello() {
51+
print("my name is $name");
52+
}
53+
}
54+
55+
void main() {
56+
var player = Player("nico", 1500);
57+
player.sayHello();
58+
var player2 = Player("sunwoo", 3000);
59+
player2.sayHello();
60+
}
61+
}
62+
#4.2
63+
class Player {
64+
final String name;
65+
int xp;
66+
String team;
67+
int age;
68+
69+
Player(
70+
{required this.name,
71+
required this.xp,
72+
required this.team,
73+
required this.age});
74+
//타입을 위에 이미 정해줬가 떄문에 this만 붙여도 가능하다.
75+
76+
void sayHello() {
77+
print("my name is $name");
78+
}
79+
}
80+
81+
void main() {
82+
var player = Player(
83+
name: 'nico',
84+
xp: 1200,
85+
team: 'red',
86+
age: 12,
87+
);
88+
player.sayHello();
89+
var player2 = Player(
90+
name: 'sunwoo',
91+
xp: 3000,
92+
team: 'red',
93+
age: 12,
94+
);
95+
player2.sayHello();
96+
}
97+
*/
98+
99+
// class Player {
100+
// final String? name, team;
101+
// int? xp, age;
102+
103+
// Player({this.name, this.xp, this.team, this.age});
104+
// //타입을 위에 이미 정해줬가 떄문에 this만 붙여도 가능하다.
105+
106+
// void sayHello() {
107+
// print("my name is $name");
108+
// }
109+
// }
110+
111+
// void main() {
112+
// var player = Player(
113+
// name: 'nico',
114+
// xp: 1200,
115+
// team: 'red',
116+
// age: 12,
117+
// );
118+
// player.sayHello();
119+
// var player2 = Player(
120+
// name: 'sunwoo',
121+
// xp: 3000,
122+
// team: 'red',
123+
// age: 12,
124+
// );
125+
// player2.sayHello();
126+
// }
127+
128+
/*
129+
#4.3
130+
class Player {
131+
final String name;
132+
int xp, age;
133+
String team;
134+
135+
Player(
136+
{required this.name,
137+
required this.xp,
138+
required this.team,
139+
required this.age});
140+
//타입을 위에 이미 정해줬가 떄문에 this만 붙이고 타입을 안 붙여도 가능하다.
141+
142+
Player.createBluePlayer({
143+
required String name,
144+
required int age,
145+
}) : this.age = age,
146+
//:는 위에 있는 final String name,int xp,int age,Stromg name의 값을 초기화해준다.
147+
this.name = name,
148+
this.team = 'blue',
149+
this.xp = 0;
150+
151+
Player.createRedPlayer(String name, int age)
152+
: this.age = age,
153+
this.name = name,
154+
this.team = 'red',
155+
this.xp = 0;
156+
157+
void sayHello() {
158+
print("my name is $name");
159+
}
160+
}
161+
162+
void main() {
163+
var player = Player.createBluePlayer(
164+
name: 'nico',
165+
age: 12,
166+
);
167+
var redPlayer = Player.createRedPlayer('nico', 12);
168+
}
19169
*/
20-
void main() {}
170+
171+
class Player {
172+
final String name;
173+
int xp;
174+
String team;
175+
176+
Player.fromJson(Map<String, dynamic> playerJson)
177+
: name = playerJson['name'],
178+
xp = playerJson['xp'],
179+
team = playerJson['team'];
180+
181+
void sayHello() {
182+
print("my name is $name");
183+
}
184+
}
185+
186+
void main() {
187+
var apiData = [
188+
{
189+
"name": "nico",
190+
"team": "red",
191+
"xp": 0,
192+
},
193+
{
194+
"name": "lynn",
195+
"team": "red",
196+
"xp": 0,
197+
},
198+
{
199+
"name": "dal",
200+
"team": "red",
201+
"xp": 0,
202+
},
203+
];
204+
205+
apiData.forEach((playerJson) {
206+
var player = Player.fromJson(playerJson);
207+
player.sayHello();
208+
});
209+
}

0 commit comments

Comments
 (0)