여기 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
의 방식이 더 간결하지만, 둘 다 널리 사용됩니다.