クラスを更に極める (4/4)
作成:2014-09-13 10:23
更新:2014-09-13 10:23
更新:2014-09-13 10:23
■タイプ・プロパティとタイプ・メソッド
通常のプロパティやメソッドは、インスタンスを作成してそこから利用します。が、クラスから直接利用するようなプロパティやメソッドも用意することができます。これは「タイプ・プロパティ」「タイプ・メソッド」と呼ばれます。
これらは、プロパティやメソッドを宣言する際、冒頭に「class」という修飾子を付けて記述します。これで、そのプロパティやメソッドはクラスに配置され、クラスから直接呼び出されるようになります。
タイプ・プロパティやタイプ・メソッドを利用する際には、いくつか注意すべき点があります。
・タイプ・プロパティとして作成できるのは、「Computedプロパティ」です。通常の変数に代入するプロパティは用意できません。またクラスに保管する変数が用意できないことから、Computedプロパティのsetも実質使えないと考えていいでしょう。
・タイプ・メソッド内から利用できるのはタイプ・メソッドとタイプ・プロパティのみです。通常の(インスタンスから利用する)プロパティやメソッドは利用できません。
下に実際の利用例を挙げておきましょう。ここでは、円からドルへ、ドルから円へと換算するExchangeクラスを用意しました。rateタイプ・プロパティと、計算を行う2つのタイプ・メソッドを用意しています。こうした計算を中心としたクラスは、いちいちインスタンスを作成する必要のないものですから、クラス・メソッドとして用意するほうが効率的に利用できるでしょう。
これらは、プロパティやメソッドを宣言する際、冒頭に「class」という修飾子を付けて記述します。これで、そのプロパティやメソッドはクラスに配置され、クラスから直接呼び出されるようになります。
タイプ・プロパティやタイプ・メソッドを利用する際には、いくつか注意すべき点があります。
・タイプ・プロパティとして作成できるのは、「Computedプロパティ」です。通常の変数に代入するプロパティは用意できません。またクラスに保管する変数が用意できないことから、Computedプロパティのsetも実質使えないと考えていいでしょう。
・タイプ・メソッド内から利用できるのはタイプ・メソッドとタイプ・プロパティのみです。通常の(インスタンスから利用する)プロパティやメソッドは利用できません。
下に実際の利用例を挙げておきましょう。ここでは、円からドルへ、ドルから円へと換算するExchangeクラスを用意しました。rateタイプ・プロパティと、計算を行う2つのタイプ・メソッドを用意しています。こうした計算を中心としたクラスは、いちいちインスタンスを作成する必要のないものですから、クラス・メソッドとして用意するほうが効率的に利用できるでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
class Exchange { class var rate:Double { return 105.0 } class func DollarToYen(d:Double)->Int { return Int(d * rate) } class func YenToDollar(y:Int)->Double { return Double((y * 100) / Int(rate)) / 100 } } println(Exchange.DollarToYen(150.5)) println(Exchange.YenToDollar(15000))
※関連コンテンツ