差分
プロパティ
,編集の要約なし
'''プロパティ'''(Property)とは、([[英語]]:Property)とは、[[オブジェクト指向プログラミング言語]]において、[[クラス]]の製作者からは[[メンバメソッド]]に見え、[[クラス]]の利用者からは[[メンバ変数]]に見える機能のことである。
その問題点をスパッと解決してくれるのがプロパティである。
== プロパティをサポートする主なプログラミング言語 ==
* [[ActionScript 3.0]]
** [[ActionScript 3.0/プロパティ]]
* [[JavaScript]]
** [[JavaScript/プロパティ]] - 某クソブラウザ(IE8まで)がサポートしていない関係でまったく使われていないが、実は古くからプロパティ構文がある。[[マイクロソフト]]の[[ASP.NET]]の中の人が作ってる[[Knockout.js]]の[[ドキュメント]]でも同じことが書かれている<ref>http://knockoutjs.com/documentation/observables.html Reading and writing observablesの項</ref>。
== 記述例 ==
[[C Sharp|C#]]での一般的なプロパティの記述例を示す。
なお、C#にはプロパティの発展系として「[[インデクサー]]」という機構もある。
<source lang="csharp">
class Hage
{
private String _name;
public String Name {
get { return _name; }
set { _name = value; }
}
}
// こんな感じで使う。
var hage = new Hage();
hage.Name = "hoge";
</source>
[[ActionScript 3.0]]での一般的なプロパティの記述例を示す。
見てのとおり、プロパティをサポートしない[[プログラミング言語]]における[[アクセサ]]の書き方とほぼ同じ。
それなのにプロパティとして快適に扱える。
[[as3]]マジオススメ。
<source lang="actionscript3">
class Hage
{
private var _name:String;
public function get name():String {
return _name;
}
public function set name(value:String):void {
_name = value;
}
}
// こんな感じで使う
var hage = new Hage();
hage.name = "hage";
</source>
== 関連項目 ==
* [[スライス]]
* [[インデクサー]]
* [[アクセサ・メソッド]]
== 参考文献 ==
{{stub}}