# Class의 Instance화
void main() {
Idol blackPink = Idol(); // Dart에서는 new를 안 넣어도 됨
print(blackPink.name);
print(blackPink.members);
blackPink.sayHello();
blackPink.introduce();
}
# Constructor
class Idol {
String name;
List<String> members;
Idol(String name, List<String> members)
: this.name = name,
this.members = members;
}
- 조금 더 간결하게
class Idol {
String name;
List<String> members;
Idol(this.name, this.members);
}
- Named constructor
// named constructor
void main() {
Idol bts = Idol.fromList(
[
['RM', '진', '슈가', '제이홉', '지민', '뷔', '정국'], 'bts',
]
}
class Idol {
Idol.fromList(List value)
: this.members = values[0],
this.name = values[1];
}
※ Const constructor
- const도 final과 같이 값을 변경 불가능하게 함
- const로 선언하고 멤버가 같으면 같은 메모리 공간 사용, 그냥 선언하면 각각 다른 인스턴스로 인식
void main() {
Idol blackPink = const Idol(
'blackPink', ['지수'...], // const는 빌드 타임에 값을 알아야하는 특징이 있다.
);
}
class Idol {
const Idol(this.name, this.members);
//...
}