何か創りたい。
http://toshirr.blog13.fc2.com/
* Toshi's Recess Room - Toshi Creates. - プロパティの活用
<< 2017/07 - 2017/08 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 2017/09 >>

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[ No. ]
[ 日時 : --/--/-- (--.) --:--:-- ]
[ カテゴリ : スポンサー広告 ]


プロパティの活用

ActiveBasic Version 5.0 β 7 にて、Toss の開発に取り組んでいます。

β 6 から実装されている「プロパティ」



Class CTest

Private
prop_TestProperty As Long

Public
Function TestProperty() As Long
Return prop_TestProperty
End Function

Sub TestProperty(set As Long)
prop_TestProperty=set
End Sub

End Class

Dim Test As CTest
Dim A=1 As Long

Test.TestProperty=123456
'Test.TestProperty(123456) と同じ

A=Test.TestProperty
'A=Test.TestProperty() と同じ

'A の値は 123456 になる



と、メソッドのオーバーロードを利用し、
プロパティの取得(Get アクセサ)・設定(Set アクセサ)を行う
専用の同名のプロシージャを定義。あとは適切に呼び出すという流れ。
取得はさせたいけど設定はさせたくない、読み取り専用にしたい場合は、
Set アクセサに相当する Sub プロシージャを Private メンバにするとよいようです。
そうすれば設定しようとするコードを書いても、
アクセス出来ないというコンパイル エラーで弾かれます。
(あるいは定義しないだけでもよいようですが。。。)

これだけの例を見ると、
TestProperty という変数を用意するだけでもいいんじゃないか
という考えが浮かびます。
確かに、この例では Private メンバの prop_TestProperty と
値の出し入れをしているだけですから、その方がさっぱりします。

しかし、先ほどのアクセシビリティの問題や、
単純に代入するだけでは終わらないようなコードを書きたい場合に
非常に便利となるこのプロパティ、少なくとも私は
オブジェクト指向には不可欠なものであると思います。
スポンサーサイト

[ No. 443 ]
[ 日時 : 2006/11/20 (Mon.) 21:06:05 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


コメント


コメントの投稿









トラック バック


トラック バック URI

http://toshirr.blog13.fc2.com/tb.php/443-c333f374


前後の記事

これ以降に書かれた記事 : 恒例
これ以前に書かれた記事 : デュアル

プロフィール

Toshi

  • Author:Toshi
  • 何かを創りたい Toshi の記録


ブログ内の検索


最近の記事


最近のコメント


最近のトラック バック


カレンダー

07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -


月別の記事


カテゴリ別の記事


RSS フィード


<< 2017/07 - 2017/08 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 2017/09 >>
* Toshi's Recess Room - Toshi Creates. - プロパティの活用
http://toshirr.blog13.fc2.com/
(C) 2005 - 2009 Toshi, All Rights Reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。