「プロパティ」の版間の差分

imported>Administrator
編集の要約なし
 
(他の1人の利用者による、間の2版が非表示)
1行目: 1行目:
'''プロパティー'''(Property)とは、[[オブジェクト指向プログラミング言語]]において、[[クラス]]の製作者からは[[メンバメソッド]]に見え、[[クラス]]の利用者からは[[メンバ変数]]に見える機能のことである。
'''プロパティ'''([[英語]]:Property)とは、[[オブジェクト指向プログラミング言語]]において、[[クラス]]の製作者からは[[メンバメソッド]]に見え、[[クラス]]の利用者からは[[メンバ変数]]に見える機能のことである。


プロパティを持たない[[オブジェクト指向]]な[[プログラミング言語]]では、メンバ変数へ安全にアクセスさせるためには[[ゲッター]]や[[セッター]]などと呼ばれる[[アクセサメソッド]]を利用する必要があった。クラス製作者からすると安全性のためにも入出力チェックを実装できる[[アクセサメソッド]]の利用を強制させたいが、クラス利用者からすると[[アクセサメソッド]]は見た目が数式っぽくなく[[ソースコード]]の見通しが非常に悪くなるという問題点を抱えていた。
なお、[[Objective-C]]では他の[[言語]]でいう[[インターフェイス]]の亜種であり、完全に別ものである点に注意する必要がある。
 
== 概要 ==
プロパティを持たない[[オブジェクト指向]]な[[プログラミング言語]]では、メンバ変数へ安全にアクセスさせるためには[[ゲッター]]や[[セッター]]などと呼ばれる[[アクセサメソッド]]を利用する必要があった。クラス製作者からすると安全性のためにも入出力チェックを実装できる[[アクセサメソッド]]の利用を強制させたいが、クラス利用者からすると[[アクセサメソッド]]は見た目が[[数式]]っぽくなく[[ソースコード]]の見通しが非常に悪くなるという問題点を抱えていた。


その問題点をスパッと解決してくれるのがプロパティである。
その問題点をスパッと解決してくれるのがプロパティである。
25行目: 28行目:
なお、C#にはプロパティの発展系として「[[インデクサー]]」という機構もある。
なお、C#にはプロパティの発展系として「[[インデクサー]]」という機構もある。
<source lang="csharp">
<source lang="csharp">
class Hage {
class Hage  
 
{
     private String _name;
     private String _name;


45行目: 48行目:
[[as3]]マジオススメ。
[[as3]]マジオススメ。
<source lang="actionscript3">
<source lang="actionscript3">
class Hage {
class Hage  
 
{
     private var _name:String;
     private var _name:String;


69行目: 72行目:


== 参考文献 ==
== 参考文献 ==
<references/>
{{reflist}}
== 外部リンク ==


{{stub}}
{{stub}}