Dartのコンストラクタ

Dartはコンストラクタが三種類あるらしいのですが普通のコンストラクタ、名前月コンストラクタ?あとはわからないのでまとめていこうと思います。

三種類のコンストラクタ

コンストラクタはインスタンスを作成した時に実行される関数です。

1生成的コンストラクタ
2ファクトリ
3定数コンストラクタ

普段は生成的コンストラクタを主に使うのでそれをまとめていきます。

生成的コンストラクタ

普通のコンストラクタのことです。

class Car {
 String name;
 Car() {
   this.name = 'Nbox';
 }
}

void main() {
Car car = Car();
 print(car.name); // => Nbox
}

引数をとる方法。

class Car {
 String name;

 Car(String name) {
   this.name = name;
 } 
}

void main() {
Car car = Car('Nbox');
print(car.name);
}

代入を省略することができます。この書き方で普段書いていますね。

class Car {
 String name;
 Car(this.name); 
}

void main() {
Car car = Car('Nbox');
 print(car.name);
}

複数の引数もよく使います。

class Car {
 final String name;
 final int maxSpeed;
 Car(this.name, this.maxSpeed); 
}

void main() {
Car car = Car('Jun',100);
 print('${car.name},${car.maxSpeed}');
}

名前つきコンストラクタと言って、引数に名前をつけることができます。

class Car {
 final String name;
 final String color;

 Car({this.name,this.color});
}

void main() {
Car car = Car(name:'Nbox',color:'white');
 print('${car.name}, ${car.color}');
}

まとめ

周りのコードの真似をしてなんとなく使用していたので、インスタンスが作成された時に実行される関数ということが知れてよかったです。また、普段よく使う書き方を「こういう意味だよね」と確認でき他と思います。一つ一つあやふやなところを潰していきたいです。

いいなと思ったら応援しよう!