객체 초기화는 Dart의 중요한 부분이며, 초기화 리스트는 생성자 본문이 실행되기 전에 필드를 초기화하는 데 매우 유용한 기능입니다. 이를 통해 final
변수, 상수, 그리고 상위 클래스의 생성자를 호출할 수 있습니다.
final
변수 초기화: final
변수는 선언 후 변경할 수 없기 때문에, 생성자 본문이 실행되기 전에 초기화 리스트를 사용하여 초기화합니다. 이를 통해 final
변수를 안전하고 명확하게 설정할 수 있습니다.아래 예제는 final
변수를 초기화하고, 상위 클래스의 생성자를 호출하며, 초기화 리스트에서 추가적인 초기화 논리를 수행하는 방법을 보여줍니다.
final
변수 초기화class Point {
final int x;
final int y;
Point(int x, int y)
: x = x,
y = y;
String toString() => 'Point($x, $y)';
}
void main() {
Point p = Point(2, 3);
print(p); // 출력: Point(2, 3)
}
class Person {
final String name;
Person(this.name);
}
class Employee extends Person {
final String position;
Employee(String name, this.position) : super(name);
String toString() => 'Employee(name: $name, position: $position)';
}
void main() {
Employee e = Employee('Alice', 'Developer');
print(e); // 출력: Employee(name: Alice, position: Developer)
}
class Circle {
final double radius;
final double area;
Circle(double radius)
: radius = radius,
area = 3.14 * radius * radius;
String toString() => 'Circle(radius: $radius, area: $area)';
}
void main() {
Circle c = Circle(5);
print(c); // 출력: Circle(radius: 5.0, area: 78.5)
}