๐ Cascade Notation
class Player {
String name;
int xp;
String team;
Player({ required this.name, required this.xp, required this.team });
void sayHello(){
print("Hi my name is $name");
}
}
void main(){
var jinho = Player(name : 'jino', xp : 1200, team : 'purple')
..name = 'brian'
..xp = 12000
..team = 'blue';
jinho๋ฅผ ์ ์ธํ
}
๐ Enums
enum Team { red, blue }
class Player {
name : String,
xp : int,
team : Team;
}
var jino = Player(name : 'jino', xp : 120, team : Team.blue);
๐ Abstract Classes
abstract class Human {
void walk();
}
class Player extends Human {
void walk(){
print("I'm walking");
}
}
๐ Inheritance
class Human {
final String name;
Human({required this.name});
void sayHello(){
print('Hi, my name is $name');
}
}
enum Team { blue, red }
class Player extends Human {
final Team team;
// ํ์ฅํ ๋ถ๋ชจ ํด๋์ค์๊ฒ name์ ์ ๋ฌํ๋ ์ญํ
Player({
required this.name,
required String name
}) : super(name : name);
@override
void sayHello(){
super.sayHello();
print('and I play for ${team}');
}
}
void main() {
var player = Player(team : Team.red, name : 'jino');
}
๐ Mixin
์์ฑ์๊ฐ ์๋ Class
class์ property๋ฅผ ์ถ๊ฐํ ๋ ์ด์ฉ
class String {
final double strengthLevel = 1500.99;
}
class QuickRunner {
void runQuick(){
print('run~~~~~~~~~');
}
}
class Tall {
final double height = 1.78;
}
enum Team {blue, red}
class Player with Strong, QuickRunner, Tall {
final Team team;
Player({ required this.team })
}