study-note

クラス

目次

コンストラクタ

ゲッターの省略記法

名前付き引数を利用することでゲッターを省略できる

class Person {
  final String name;
  final int age;
  
  Person({
    required this.name,
    required this.age,
  });
}

// 使用
var person = Person(name: "太郎", age: 25);
print(person.name);

factory

概要


特徴

サンプルコード

class MyClass {
  final String name;
  final String age;

  MyClass({
    required this.name,
    required this.age,
  });

  factory MyClass.fromJson(Map<String, Int> json) {
    return MyClass(
      name: json['name'],
      age: json['age'],
    );
  }
}

名前付きコンストラクタ

サンプルコード

class Point {
  int x, y;

  Point(this.x, this.y);        // 通常のコンストラクタ
  Point.origin() : x = 0, y = 0; // 名前付きコンストラクタ
}

void main() {
  var p1 = Point(3, 5);   // 通常コンストラクタ
  var p2 = Point.origin(); // 名前付きコンストラクタ
}
class User {
  String name;
  int age;

  User(this.name, this.age);           // 普通のコンストラクタ
  User.anonymous() : name = '匿名', age = 0; // 名前付きコンストラクタ
}