@@ -16,5 +16,194 @@ void main() {
16
16
print(player.name);
17
17
player.sayHello();
18
18
}
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
+ }
19
169
*/
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