Flutter(Dart)でプロパティのgetterとsetterを記述する方法

2024年7月8日月曜日

Flutter

t f B! P L

Flutter(Dart)におけるプロパティのgetterとsetterの記述方法について解説します。

DartにおけるGetterとSetter

基本的なGetterとSetter

まず、単純なgetterとsetterの例から見ていきましょう。以下のクラスPersonでは、_nameプロパティに対してgetterとsetterを定義しています。

class Person {
  String _name;

  // Getter
  String get name => _name;

  // Setter
  set name(String value) {
    _name = value;
  }
}

ここでは、_nameプロパティがプライベートであるため、外部から直接アクセスすることはできません。代わりに、nameプロパティを通じて間接的にアクセスします。

単一行で書かれるGetter

Getterは値を返すシンプルなものであれば、単一行で記述することができます。以下は、Personクラスで年齢を返す簡単なgetterの例です。

class Person {
  int _age = 30;

  // 単一行のGetter
  int get age => _age;
}

このage getterは、_ageフィールドの値をそのまま返します。

複数行のロジックを含むGetter

複雑なロジックを含むgetterも作成可能です。例えば、Personクラスが生年月日から年齢を計算するgetterを持っている場合、以下のように記述することができます。

class Person {
  DateTime birthDate;

  // 複数行のロジックを含むGetter
  int get age {
    var now = DateTime.now();
    var age = now.year - birthDate.year;
    if (now.month < birthDate.month || 
        (now.month == birthDate.month && now.day < birthDate.day)) {
      age--;
    }
    return age;
  }
}

まとめ

Dartにおけるgetterとsetterは、クラスのフィールドへのアクセスを抽象化し、制御された方法でデータを操作できるようにするための方法です。

スポンサーリンク
スポンサーリンク

このブログを検索

Profile

自分の写真
Webアプリエンジニア。 日々新しい技術を追い求めてブログでアウトプットしています。
プロフィール画像は、猫村ゆゆこ様に書いてもらいました。

仕事募集もしていたり、していなかったり。

QooQ