クラスを更に掘り下げる! (1/6)
作成:2018-04-21 09:20
更新:2018-04-21 09:20
更新:2018-04-21 09:20
■クラス変数とクラスメソッド
ここまで、「クラスはインスタンスを作成して利用する」と、当たり前のようにいってきましたが、実は「クラスのままでも使える」んです。ただし! そのためには、「クラスのまま使えるように、クラスを作る」必要があります。
Dartには、「クラス変数」と「クラスメソッド(あるいは、静的メソッド)」というものがあります。これは、クラスから直接利用できる変数とメソッドです。これらは以下のように作成します。
クラス変数やクラスメソッドは、インスタンスからは利用できません。普通のメソッドはインスタンスを作成してその中で動くので、つまり普通の(クラスメソッドでない)メソッドの中からは、クラス変数やクラスメソッドは利用できない、ということになります。また、逆にクラスメソッドの中からも、インスタンス変数や普通のメソッドは使えません。両者はパッキリと分かれているのです。
では、簡単な利用例を下のリスト欄に挙げておきましょう。ここでは、Calcというクラスを作成しています。これは、taxというクラス変数と、calcというクラスメソッドを持っています。このCalcを利用している部分をmainから見てみましょう。
Dartには、「クラス変数」と「クラスメソッド(あるいは、静的メソッド)」というものがあります。これは、クラスから直接利用できる変数とメソッドです。これらは以下のように作成します。
static 変数宣言わかりますか? 変数やメソッドの宣言の冒頭に「static」というものをつけるのです。こうすると、その変数やメソッドは、クラス変数やメソッドメソッドとして使われるようになります。
static メソッド宣言
クラス変数やクラスメソッドは、インスタンスからは利用できません。普通のメソッドはインスタンスを作成してその中で動くので、つまり普通の(クラスメソッドでない)メソッドの中からは、クラス変数やクラスメソッドは利用できない、ということになります。また、逆にクラスメソッドの中からも、インスタンス変数や普通のメソッドは使えません。両者はパッキリと分かれているのです。
では、簡単な利用例を下のリスト欄に挙げておきましょう。ここでは、Calcというクラスを作成しています。これは、taxというクラス変数と、calcというクラスメソッドを持っています。このCalcを利用している部分をmainから見てみましょう。
Calc.tax = 8;このように、Calcから直接メソッドや変数を呼び出していることがわかります。このCalcのように、計算をするだけのメソッドは、別にインスタンスを作らなくても処理に問題などありませんから、クラスメソッドのほうが便利ですね。
print(Calc.calc(12300));
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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; } }
※関連コンテンツ