2020/1/6 Dart クラス(class)>>constructor

Dartの全てのオブジェクトはクラスのインスタンスであり、全てのクラスはObjectクラスから派生します。

Objectクラスを除く全てのクラスが一つのスーパークラスを持ちます(多重継承はできない。)が、それにも関わらず、クラスのボディは複数のクラス階層の中で再利用できます。これが「Mixinベースの継承」です。

  • クラスを修正する。
  • サブクラスを定義する。

上記のようなこと無しにクラスに機能を追加する方法にExtension methodがあります。

クラスの定義

基本

sample1-1

class SomeClass{
     //もっともシンプルなクラス
}

classキーワード、スペース、クラス名、中括弧と記述し、中括弧の中(ブロック内)にクラスの中身を実装します。



インスタンス変数を定義する

sample1-2

class Point {
  num x; // インスタンス変数xを宣言。初期値はnull
  num y; // インスタンス変数yを宣言。初期値はnull
  num z = 0; // インスタンス変数zを宣言。初期値は0
}

sample1-2ではx,y,zの三つのインスタンス変数(プロパティ)を宣言しています。インスタンス変数を初期化しないと、自動的にnullがセットされます。なので、sample1-2ではxとyは初期値nullになります。


sample1-3

class Point {
  num