回答編集履歴
7
微修正
answer
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
- 人間 ⇀ オブジェクト
|
37
37
|
- クラス ⇨ オブジェクト
|
38
38
|
- オブジェクト ⇀ オブジェクト
|
39
|
-
- クラス
|
39
|
+
- クラス ∈ クラス
|
40
40
|
|
41
41
|
みたいのも成り立ってしまうって事になります。ちなみに第3の流派はこれに従った説明です。
|
42
42
|
|
6
コメント欄を参考にした修正
answer
CHANGED
@@ -11,6 +11,7 @@
|
|
11
11
|
この3つの主張を聞いて、3つの流派があるなんて思わないですよね。同じ人がこの3つの主張をしたところでどこも不自然じゃないです。でも、これらを聞いて「結局猫って何?」ってなるのも分かります。質問者様もちょうどそのような感じだと思います。
|
12
12
|
|
13
13
|
そこで、混同しないように「は」と言う助詞を使わず形式的にいろいろ言い表してみると、
|
14
|
+
(クラスは集合として考える事もできます。関数型言語等では型を集合として考えたりもします。ここではその考えに法って考えます。)
|
14
15
|
> 定義
|
15
16
|
A⇨B ⇔ AクラスはBクラスを継承している
|
16
17
|
A⇀B ⇔ AはBクラスのオブジェクトである
|
5
コメント欄を参考にした修正
answer
CHANGED
@@ -41,4 +41,4 @@
|
|
41
41
|
|
42
42
|
「a∈a」の形は自己言及と呼ばれる論理で、理解するのに苦労する上に矛盾を引き起こしやすいから数学界では忌み嫌われているらしいですが、この論理自体が直ちに矛盾を生じさせる訳ではないので、上記のものと矛盾なく両立できこの流派もきちんと成り立っています。
|
43
43
|
|
44
|
-
インスタンスに関しては、オブジェクトと
|
44
|
+
インスタンスに関しては、オブジェクトとあまり大きな違いはないと捉えてしまっても困ることはないと思います。メモリに確保されるのがインスタンスで、概念上の話をする時はオブジェクトと言う感じで使い分けるのが普通かなと思います。
|
4
コメント欄を参考にした修正
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
3つを別々の流派と考えなくても、クラスベースのオブジェクト指向の説明として3つとも正しいと捉える事が出来ると思います。
|
3
3
|
(とは言っても、第1の流派に関しては間違いではないですがとても誤解を招きやすい説明の仕方です。第3の流派は私的には初心者にはタブーな部分まで触れてしまっている上に、説明の順番がごちゃごちゃです。第2の流派の説明の仕方が最も適切ではあると思います。)
|
4
4
|
|
5
|
-
なぜそんな事が言えるのかと言うと、日本語の「AはB」って言うのが「A∈B」「A⊆B」「A=B」のどの意味でも使われていて、かつ見分けがつきにくく、見分けがついたとしてもまた別の言い方が出来てしまいます。ややこしいですけどね。
|
5
|
+
なぜそんな事が言えるのかと言うと、日本語の「AはB」って言うのが「A∈B」「A⊆B」「A=B」のどの意味でも使われていて、かつ見分けがつきにくく、見分けがついたとしてもまた別の言い方が出来てしまいます。さらにオブジェクト指向の概念では、「AクラスはBクラスを継承している」「AオブジェクトはBクラスのオブジェクトである」と言う意味でも使われます。ややこしいですけどね。
|
6
6
|
|
7
7
|
a. 猫は生物
|
8
8
|
b. 猫は哺乳類
|
@@ -11,26 +11,31 @@
|
|
11
11
|
この3つの主張を聞いて、3つの流派があるなんて思わないですよね。同じ人がこの3つの主張をしたところでどこも不自然じゃないです。でも、これらを聞いて「結局猫って何?」ってなるのも分かります。質問者様もちょうどそのような感じだと思います。
|
12
12
|
|
13
13
|
そこで、混同しないように「は」と言う助詞を使わず形式的にいろいろ言い表してみると、
|
14
|
+
> 定義
|
15
|
+
A⇨B ⇔ AクラスはBクラスを継承している
|
16
|
+
A⇀B ⇔ AはBクラスのオブジェクトである
|
17
|
+
|
14
18
|
- 猫 ⊆ 生物
|
15
19
|
- 猫 ⊆ 哺乳類
|
16
20
|
- うちのタマ ∈ 猫
|
17
|
-
- 人間 ∈ クラス
|
21
|
+
- 人間クラス ∈ クラス
|
18
|
-
- 人間
|
22
|
+
- 人間 ⇨ オブジェクト
|
19
|
-
- 唐澤貴洋
|
23
|
+
- 唐澤貴洋 ⇀ 人間
|
20
|
-
- 唐澤貴洋
|
24
|
+
- 唐澤貴洋 ⇀ オブジェクト
|
21
|
-
- オブジェクト ∈ クラス
|
25
|
+
- オブジェクトクラス ∈ クラス
|
22
|
-
- オブジェクト=????(クラス)
|
26
|
+
- オブジェクト = ????(クラス)
|
23
27
|
- クラス ⊆ ????(オブジェクト)
|
24
28
|
|
25
29
|
って感じになると思います。
|
26
30
|
どれをとっても「"左項" は "右項" である。」と言い表せます。(ちゃんとやるなら哺乳類・人間・唐澤貴洋等の同値関係について定義が必要です。)
|
31
|
+
「⇨」と「⊆」、「⇀」と「∈」はそれぞれ似た様な意味合いです。
|
27
32
|
最後の2つは少しだけ集合論の知識が必要ですが、それぞれ「オブジェクトとは、クラスの合併集合」「クラスはオブジェクトの冪集合の部分集合」と言う意味で、クラスベースのオブジェクト指向を理解する上で最も重要だと私は考えています。
|
28
33
|
|
29
34
|
Javaとかだとクラスクラスってのがあって、クラスはオブジェクトだとしていますが、これはクラスベースのオブジェクト指向に対して共通の概念ではなく、それこそ一つの流派っていう感じだと思います。この流派に従えば、上記に加え、
|
30
|
-
- 人間
|
35
|
+
- 人間 ⇀ オブジェクト
|
31
|
-
- クラス
|
36
|
+
- クラス ⇨ オブジェクト
|
32
|
-
- オブジェクト
|
37
|
+
- オブジェクト ⇀ オブジェクト
|
33
|
-
- クラス
|
38
|
+
- クラス ⇀ クラス
|
34
39
|
|
35
40
|
みたいのも成り立ってしまうって事になります。ちなみに第3の流派はこれに従った説明です。
|
36
41
|
|
3
具体例の追加
answer
CHANGED
@@ -29,6 +29,7 @@
|
|
29
29
|
Javaとかだとクラスクラスってのがあって、クラスはオブジェクトだとしていますが、これはクラスベースのオブジェクト指向に対して共通の概念ではなく、それこそ一つの流派っていう感じだと思います。この流派に従えば、上記に加え、
|
30
30
|
- 人間 ∈ オブジェクト
|
31
31
|
- クラス ⊆ オブジェクト
|
32
|
+
- オブジェクト ∈ オブジェクト
|
32
33
|
- クラス ∈ クラス
|
33
34
|
|
34
35
|
みたいのも成り立ってしまうって事になります。ちなみに第3の流派はこれに従った説明です。
|
2
誤字修正
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
3つを別々の流派と考えなくても、クラスベースのオブジェクト指向の説明として3つとも正しいと捉える事が出来ると思います。
|
3
3
|
(とは言っても、第1の流派に関しては間違いではないですがとても誤解を招きやすい説明の仕方です。第3の流派は私的には初心者にはタブーな部分まで触れてしまっている上に、説明の順番がごちゃごちゃです。第2の流派の説明の仕方が最も適切ではあると思います。)
|
4
4
|
|
5
|
-
なぜそんな事が言えるのかと言うと、日本語の「AはB」って言うのが
|
5
|
+
なぜそんな事が言えるのかと言うと、日本語の「AはB」って言うのが「A∈B」「A⊆B」「A=B」のどの意味でも使われていて、かつ見分けがつきにくく、見分けがついたとしてもまた別の言い方が出来てしまいます。ややこしいですけどね。
|
6
6
|
|
7
7
|
a. 猫は生物
|
8
8
|
b. 猫は哺乳類
|
1
微修正
answer
CHANGED
@@ -11,9 +11,9 @@
|
|
11
11
|
この3つの主張を聞いて、3つの流派があるなんて思わないですよね。同じ人がこの3つの主張をしたところでどこも不自然じゃないです。でも、これらを聞いて「結局猫って何?」ってなるのも分かります。質問者様もちょうどそのような感じだと思います。
|
12
12
|
|
13
13
|
そこで、混同しないように「は」と言う助詞を使わず形式的にいろいろ言い表してみると、
|
14
|
-
- 哺乳類 ⊆ 生物
|
15
14
|
- 猫 ⊆ 生物
|
15
|
+
- 猫 ⊆ 哺乳類
|
16
|
-
- うちのタマ ∈
|
16
|
+
- うちのタマ ∈ 猫
|
17
17
|
- 人間 ∈ クラス
|
18
18
|
- 人間 ⊆ オブジェクト
|
19
19
|
- 唐澤貴洋 ∈ 人間
|
@@ -27,6 +27,7 @@
|
|
27
27
|
最後の2つは少しだけ集合論の知識が必要ですが、それぞれ「オブジェクトとは、クラスの合併集合」「クラスはオブジェクトの冪集合の部分集合」と言う意味で、クラスベースのオブジェクト指向を理解する上で最も重要だと私は考えています。
|
28
28
|
|
29
29
|
Javaとかだとクラスクラスってのがあって、クラスはオブジェクトだとしていますが、これはクラスベースのオブジェクト指向に対して共通の概念ではなく、それこそ一つの流派っていう感じだと思います。この流派に従えば、上記に加え、
|
30
|
+
- 人間 ∈ オブジェクト
|
30
31
|
- クラス ⊆ オブジェクト
|
31
32
|
- クラス ∈ クラス
|
32
33
|
|