クラス定義について

プロパティとgetterとsetter

プロパティはクラス内に直接書き込むだけ。

プロパティへのgetterはgetキーワードを使用して、
型 get 引数 => プロパティで書く。

setterはsetキーワードを使用して、
set メソッド名(型 引数){ this.プロパティ = 引数}で書く。

以下にコード例を示す。

class Hoge{
	int _data = 0;
	int get data => _data;
	set data(int data){
		this._data = data;
	}
}

インスタンス化

クラス名();でインスタンス化できる。
以下にコード例を示す。

void main(){
	Hoge hoge = Hoge();
	hoge.data = 10;
}

継承

継承には、extendsキーワードを使用する。

class Hoge extends Foo{
	@override
	void sampleMethod(){
		...
	}
}

クラスに対してのDartのジェネリクス

クラス

クラスにも使用することが出来る。
クラスに使用するとメソッド複数で設定したジェネリクスを使用することが出来る。

以下にコード例を示す。

class SampleClass<T>{
	late final T value; 
	
	SampleClass(T arg){
		value = arg;
	}
}

デザインパターンであるストラテジパターンにも応用することが出来る。

元記事へのリンク

抽象クラスについて

Dartには、抽象クラスが存在する。
これは、処理を持たず継承に特化したクラスである。
abstructキーワードを使用する。

abstruct class sampleClass{
	String get title; //サブクラスに対して、変数を持たせることへの強制
	void sample();    //サブクラスに対して、メソッド実装の強制
}