クラスを更に極める (3/4)
作成:2014-09-13 10:22
更新:2014-09-13 10:22
更新:2014-09-13 10:22
■Computedプロパティとは?
継承の他にも、「これは覚えておかないと!」という機能がいくつかあるので、それらについても説明しておきましょう。まずは「Computedプロパティ」です。
プロパティというのは、クラスに値を保管しておく変数です。これは、そのまま値を入れ替えできるので、どんな値が設定されるかわかりません。そこで、値の出し入れをプログラムで制御できるようにしたのがComputedプロパティです。
Computedプロパティは、以下のように記述します。
下にComputedプロパティの利用例を挙げておきましょう。ここでは、ageというComputedプロパティを使っています。実際の値はoldというプロパティに保管しています。Computedプロパティは、このように実際の値を保管しておくための場所を別に用意する必要があるでしょう。
プロパティというのは、クラスに値を保管しておく変数です。これは、そのまま値を入れ替えできるので、どんな値が設定されるかわかりません。そこで、値の出し入れをプログラムで制御できるようにしたのがComputedプロパティです。
Computedプロパティは、以下のように記述します。
var プロパティ : 型 {プロパティの宣言の後に{}があり、その中にgetとsetというものが用意されます。ここで、値を読み書きするための処理を記述します。getのみでsetを用意しないと、値の取得にも可能で変更できないプロパティになります。逆にsetのみだと、値の変更のみ可で取得のできないプロパティができます。
get {
……処理……
return 値
}
set {
……処理……
}
}
下にComputedプロパティの利用例を挙げておきましょう。ここでは、ageというComputedプロパティを使っています。実際の値はoldというプロパティに保管しています。Computedプロパティは、このように実際の値を保管しておくための場所を別に用意する必要があるでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
class Friend { var name:String var old:Int var age:Int { get { return old } set { if newValue > 0 { old = newValue } } } init(name:String, age:Int) { self.name = name self.old = age } func printData() { println("\(self.name) (\(age))") } } var you = Friend(name: "Taro", age: 30) you.printData()
※関連コンテンツ