Udemyセール開催中! 対象コースが1,220円から

【Flutter×Dart】クラスのカプセル化|getter/setter

今回はDartにおけるクラスの「カプセル化」「getter」「setter」の使い方について解説します。

目次

カプセル化

class Person {
  String _name;
  int _age;
  Person(this._name, this._age) {}
}

変数をカプセル化するには「 _ 」を変数の前につけます。

ゲッター(get)

カプセル化の変数を取得するにはgetter(get)を使用します。

void main() {
  var rectangle = Rectangle(2, 5);
  print(rectangle.height);
  print(rectangle.width);
  print(rectangle.area);
}

class Rectangle {
  int _height;
  int _width;

  Rectangle(this._height, this._width) {}

  int get height => _height;
  int get width => _width;
  int get area => _height * _width;
}

//出力
//2
//5
//10

getterを作るにはアロー関数で「get」を宣言します。

セッター(set)

カプセル化の変数を変更するにはsetter(set)を使用します。

void main() {
  var rectangle = Rectangle(2, 5);
  print(rectangle.height);
  rectangle.height = 5;
  print(rectangle.height);

  rectangle.afterChangeWidth = 10;
  print(rectangle.width);
}

class Rectangle {
  int _height;
  int _width;

  Rectangle(this._height, this._width) {}

  int get height => _height;
  int get width => _width;
  int get area => _height * _width;

  set height(int height) => _height = height;
  set afterChangeWidth(int width) {
    _width = width;
    print('長方形の面積:${this.area}');
  }
}

//出力
//2
//5
//長方形の面積:50
//10

setterを作るには「set」を宣言します。呼び出す際「()」を使わず「=」で新しい値を代入します。

以上です。

  • URLをコピーしました!
目次
閉じる