[플러터]Dart 문법 - 생성자

송송승현's avatar
Dec 20, 2024
[플러터]Dart 문법 - 생성자

정의

💡
클래스의 인스턴스를 초기화하는 메서드
주로 객체를 생성할 때 필요한 초기 설정을 수행
Dart에서는 오버로딩을 지원하지 않음
대신 함수의 선택적 매개변수, 이름있는 매개변수를 활용하여 유사한 기능 구현이 가능
class Person { int id; String name; late int money; // 나중에 들어옴 or 디폴트 0 String? nickname; // nullable 변수, 있을수도 있고 없을 수도 있는것 // 기본 생성자 Person(this.id, this.name, this.money, this.nickname); // 이름 있는 생성자 Person.fromMap(Map<String, dynamic> m) : this.id = m["id"], this.name = m["name"], this.money = m["money"], this.nickname = m["nickname"] ?? "다른이름"; void init() { if (money == 0) { for (int i = 0; i < 10; i++) { money = money + 1; } } } } void main() { var m = {"id": 2, "name": "임꺽정", "money": 0}; Person p2 = Person.fromMap(m)..init(); print(p2.id); print(p2.name); print(p2.money); print(p2.nickname); }

기본 생성자

  • 클래스를 정의하면 기본적으로 아무런 매개변수도 없는 기본 생성자가 제공
  • 명시적으로 작성하지 않아도 사용

매개변수를 가진 생성자

  • 생성자에 매개변수를 추가하여 객체를 초기화할 때 필요한 값을 전달

이름 있는 생성자

  • 클래스 내에서 여러개의 생성자를 정의할 수 있도록 이름 있는 생성자를 사용
  • 여러가지 초기화 방법을 제공

초기화 리스트

  • 생성자가 본문을 실행하기 전에 인스턴스 변수를 초기화할 수 있는 초기화 리스트를 사용

팩토리 생성자

  • 항상 새로운 인스턴스를 생성하지 않고 기존 인스턴스를 반환할 수도 있는 생성자
  • 주로 싱글톤 패턴이나 캐싱에 사용

선택적 매개변수

  • 매개변수를 정의할 때 중괄호를 사용하여 정의
  • 함수를 호출할 때 생락 가능
  • 기본값을 지정 가능
  • 여러가지 호출 방식을 지원하여 함수를 더 유연하게 사용
  • 불필요한 매개변수를 생략하여 함수 호출을 간결

이름 있는 매개변수

  • 함수 호출 시 매개변수 이름을 지정하여 값을 전달
  • 기본값을 지정 가능
 
Share article

송승현의 블로그