libro
www.tuyano.com
初心者のためのDart 2入門

クラスを更に掘り下げる! (1/6)

作成:2018-04-21 09:20
更新:2018-04-21 09:20

■クラス変数とクラスメソッド

ここまで、「クラスはインスタンスを作成して利用する」と、当たり前のようにいってきましたが、実は「クラスのままでも使える」んです。ただし! そのためには、「クラスのまま使えるように、クラスを作る」必要があります。

Dartには、「クラス変数」と「クラスメソッド(あるいは、静的メソッド)」というものがあります。これは、クラスから直接利用できる変数とメソッドです。これらは以下のように作成します。
static 変数宣言
static メソッド宣言
わかりますか? 変数やメソッドの宣言の冒頭に「static」というものをつけるのです。こうすると、その変数やメソッドは、クラス変数やメソッドメソッドとして使われるようになります。

クラス変数やクラスメソッドは、インスタンスからは利用できません。普通のメソッドはインスタンスを作成してその中で動くので、つまり普通の(クラスメソッドでない)メソッドの中からは、クラス変数やクラスメソッドは利用できない、ということになります。また、逆にクラスメソッドの中からも、インスタンス変数や普通のメソッドは使えません。両者はパッキリと分かれているのです。

では、簡単な利用例を下のリスト欄に挙げておきましょう。ここでは、Calcというクラスを作成しています。これは、taxというクラス変数と、calcというクラスメソッドを持っています。このCalcを利用している部分をmainから見てみましょう。
  Calc.tax = 8;
  print(Calc.calc(12300));
このように、Calcから直接メソッドや変数を呼び出していることがわかります。このCalcのように、計算をするだけのメソッドは、別にインスタンスを作らなくても処理に問題などありませんから、クラスメソッドのほうが便利ですね。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

void main() {
  Calc.tax = 8;
  print(Calc.calc(12300));
  Calc.tax = 10;
  print(Calc.calc(12300));
}

class Calc {
  static num tax;
  
  static num calc(num price){
    return price * (100 + tax) / 100;
  }
}
※関連コンテンツ

「初心者のためのDart 2入門」に戻る