
여기 Idol1과 Idol2 두 가지 방식으로 아이돌 그룹을 나타내는 클래스가 있습니다.
class Idol1 {
final String name;
final List<String> members;
Idol1(String name, List<String> members)
: this.name = name,
this.members = members;
}
Idol1 클래스는 name과 members라는 두 개의 변수를 가지고 있습니다.final이 붙어 있어서, 이 변수들은 한 번 값을 설정하면 바꿀 수 없습니다.Idol1의 생성자에서는 초기화 리스트를 사용합니다. 이는 : 뒤에 오는 부분입니다.this.name = name는 "넘겨 받은 name 값을 Idol1 클래스의 name 변수에 저장해라"라는 뜻입니다.this.members = members도 마찬가지로, "넘겨 받은 members 값을 Idol1 클래스의 members 변수에 저장해라"라는 뜻입니다.class Idol2 {
final String name;
final List<String> members;
Idol2(this.name, this.members);
}
Idol2도 Idol1과 같이 name과 members 두 변수를 가지고 있습니다.Idol2(this.name, this.members)는 "넘겨 받은 name과 members 값을 각각 Idol2 클래스의 name과 members 변수에 저장해라"라는 뜻입니다.void main() {
Idol1 bts1 = Idol1("BTS", ["RM", "Jin", "Suga", "J-Hope", "Jimin", "V", "Jungkook"]);
print(bts1.name); // 출력: BTS
print(bts1.members); // 출력: [RM, Jin, Suga, J-Hope, Jimin, V, Jungkook]
Idol2 bts2 = Idol2("BTS", ["RM", "Jin", "Suga", "J-Hope", "Jimin", "V", "Jungkook"]);
print(bts2.name); // 출력: BTS
print(bts2.members); // 출력: [RM, Jin, Suga, J-Hope, Jimin, V, Jungkook]
}
Idol1과 Idol2를 사용하여 BTS라는 아이돌 그룹 객체를 만들 수 있습니다.결론적으로, Idol1과 Idol2는 같은 정보를 저장하고, 같은 일을 하는 클래스입니다. 그러나 변수를 초기화하는 방식에서 차이가 있습니다. Idol2의 방식이 더 간결하지만, 둘 다 널리 사용됩니다.