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は、クラスのフィールドへのアクセスを抽象化し、制御された方法でデータを操作できるようにするための方法です。
0 件のコメント:
コメントを投稿