回答編集履歴
4
追記
test
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
|
30
30
|
|
31
|
-
まあでもそれはコンパイル言語だからできる芸当だという事実もあって、動的言語というかインタプリタ言語では「クラスもオブジェクト」の方が自然です。逆に、これによって動的言語は強力な記述力を獲得しています。
|
31
|
+
まあでもそれはコンパイル言語だからできる芸当だという事実もあって、動的言語というかインタプリタ言語では「クラスもオブジェクト」の方が自然です(今どきのオブジェクト指向プログラミングが当たり前の前提の動的言語から見ればの話)。逆に言うと、これによって動的言語は強力な記述力を獲得しています。
|
32
32
|
|
33
33
|
|
34
34
|
|
3
追記
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
クラスを必ずオブジェクトにしないといけない、ということはないはずです。プログラム
|
19
|
+
クラスを必ずオブジェクトにしないといけない、ということはないはずです。プログラムでは「クラス」でひな形を記述するけど、その構造はコンパイル時にぜんぶ静的に解決されて消し飛ばされる、という言語設計だってありえます。Javaなどは基本的にはこれです。
|
20
20
|
|
21
21
|
|
22
22
|
|
2
追記
test
CHANGED
@@ -16,7 +16,11 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
クラスを必ずオブジェクトにしないといけない、ということはないはずです。プログラムとしては「クラス」でひな形を記述するけど、その構造はコンパイル時にぜんぶ静的に解決されて消し飛ばされる、という言語設計だってありえます。Javaなどはこれです。
|
19
|
+
クラスを必ずオブジェクトにしないといけない、ということはないはずです。プログラムとしては「クラス」でひな形を記述するけど、その構造はコンパイル時にぜんぶ静的に解決されて消し飛ばされる、という言語設計だってありえます。Javaなどは基本的にはこれです。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
この場合は「クラスはオブジェクトとしては存在しない」「メソッドはただの(インスタンス自身を引数に取ったりする)サブルーチンになる」「属性やメソッドへのアクセスはインスタンスのメモリ番地(と属性やメソッドによって予め決められたオフセット)で行う」みたいな方針になります。低レイヤから見ればただの手続き型に近い訳です(これも程度問題ですが)。
|
20
24
|
|
21
25
|
|
22
26
|
|
1
追記
test
CHANGED
@@ -88,6 +88,10 @@
|
|
88
88
|
|
89
89
|
|
90
90
|
|
91
|
+
「オブジェクト指向」は更に広い概念で、クラスベース、インスタンスベースのどちらも含みます。
|
92
|
+
|
93
|
+
|
94
|
+
|
91
95
|
---
|
92
96
|
|
93
97
|
|