지식/Flutter

[Flutter] Constructor(생성자)

ZeroAct 2023. 2. 4.
728x90
반응형

기본적인 생성자 사용법은 다른 언어들과 크게 다르지 않다.

하지만 독특한 문법이 있어서 정리해본다.

 

단순한 사용법은 다음과 같다.

class Person {
  String name;
  int age;

  // 기본
  Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  // 조금 다르게
  Person(String name, int age)
      : this.name = name,
        this.age = age;

  // 조금 짧게
  Person(this.name, this.age);
}

 

 

너무 방법이 다양해서 헷갈리는 것 같다..ㅠ

 

다른 언어에서는 인자의 개수나 타입을 다르게하여 여러개의 생성자를 만들 수 있다.

하지만 Dart 에서는 생성자 이름이 같으면 error 가 뜬다.

named constructor 를 통해 여러개를 만들 수 있다.

class Person {
  String name;
  int age;

  Person(String name, int age)
      : this.name = name,
        this.age = age;

  Person.young(String name)
      : this.name = name,
        this.age = 10;

  Person.old(String name)
      : this.name = name,
        this.age = 50;
}

Person.young("홍길동")

하면 10살 짜리 홍길동 객체가 생성된다.

디폴트 값을 자유도 높게 여러개를 설정할 수 있는 기능이라고 보면 될 것 같다.

 

class Person {
  String name;
  int age;

  Person(String name, int age)
      : this.name = name,
        this.age = age;

  Person.young(String name)
      : this.name = name,
        this.age = 10;

  Person.old(String name)
      : this.name = name,
        this.age = 50;

  Person.hong() : this.old("홍길동");
}

이렇게 다른 생성자에서 다른 생성자를 사용할 수도 있다.

728x90
반응형

'지식 > Flutter' 카테고리의 다른 글

[Ultralytics Hub Flutter Clone Coding] #1. 사이드 메뉴 만들기  (0) 2023.02.11
[Flutter] Stateless vs Stateful  (0) 2023.02.03
[Flutter] 개요  (0) 2023.01.29
Dart 반복문  (0) 2023.01.23
Dart 조건 분기  (0) 2023.01.23

댓글