オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0064デフォルトの名無しさん
2015/11/22(日) 15:23:24.36ID:DDbKY7qAclass Test {
int field;
public int Field {
get { return field; }
set { field = value; }
}
}
これが setter / getter。
これの素晴らしい所はパブリックフィールドと全く同じように扱えること。
Test t = new Test();
t.Field = 20;
最初はパブリックフィールドにしておいて、あとから変えることもできる。
さて、ここからわかることは、実は関数と変数(フィールド)っていうのは等価であるということ。
変数への読み書き時に、setter / getter を定義 できたり、PHPの__get、__setのようなフックを仕込めたり
Object.observe() のようなオブジェクトの変更を監視できる機能があるのが前提だが、
関数と変数は等価である。これを強く言いたい。
言い換えると、どちらか一つあれば十分なのである。
コンピュータから見ればね(笑)
俺らは人間なんで、関数と変数を分けて考えてる。関数は処理、変数は属性。
つまり、等価であるから、片方だけあれば十分とは考えずに、
オブジェクト指向としてオブジェクトには処理と属性があると認識してるので両方共必要なんだ。
■ このスレッドは過去ログ倉庫に格納されています