Flutter & Dart

Dart Class 생성자

까칠코더 2023. 11. 17. 09:09
반응형

클래스 생성자 선언할때 초기화 목록을 사용할 수 있습니다.

class User {
  late String name;
  late int age;
  
  User(String name, int age) : this.name = name, this.age = age { } 
}

 

함수 오버로딩을 지원하지 않는 대신에 생성자 이름을 지정할 수 있습니다.

class MyClass {
  MyClasse() { }

  MyClass(int value1, value2) {
    print('values = $value1, $value2');
  }
  
  // 초기화 이름
  MyClass.first(int value) {
  	this(value, 0);
  }
  
  // 초기화 이름을 초기화 목록으로 사용한 경우
  MyClass.second(int value) : this(0, value);
}

팩토리(factory) 생성자를 사용할 수 있으며, 반드시 해당 객체를 반환해야 합니다.

class MyClass {
  MyClass._instance();
  
  factory MyClass() {
    return MyClass._instance();
  }
}

상수(const) 생성자를 사용하는 경우에는 해당 클래스의 모든 변수를 final로 선언해야 합니다.

class MyClass {
  final int value;
  const MyClass(this.value);
}

var my = const MyClass(10);
반응형