teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

7

微修正

2019/06/10 09:01

投稿

mightyMask
mightyMask

スコア143

answer CHANGED
@@ -36,7 +36,7 @@
36
36
  - 人間 ⇀ オブジェクト
37
37
  - クラス ⇨ オブジェクト
38
38
  - オブジェクト ⇀ オブジェクト
39
- - クラス クラス
39
+ - クラス クラス
40
40
 
41
41
  みたいのも成り立ってしまうって事になります。ちなみに第3の流派はこれに従った説明です。
42
42
 

6

コメント欄を参考にした修正

2019/06/10 09:01

投稿

mightyMask
mightyMask

スコア143

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

コメント欄を参考にした修正

2019/06/10 08:48

投稿

mightyMask
mightyMask

スコア143

answer CHANGED
@@ -41,4 +41,4 @@
41
41
 
42
42
  「a∈a」の形は自己言及と呼ばれる論理で、理解するのに苦労する上に矛盾を引き起こしやすいから数学界では忌み嫌われているらしいですが、この論理自体が直ちに矛盾を生じさせる訳ではないので、上記のものと矛盾なく両立できこの流派もきちんと成り立っています。
43
43
 
44
- インスタンスに関しては、オブジェクトと全く同じものと捉えてしまっても困ることはないと思います。ヒープ領域に確保されるのがインスタンスで、概念上の話をする時はオブジェクトと言う感じで使い分けるのが普通かなと思います。
44
+ インスタンスに関しては、オブジェクトとあまり大きな違いはないと捉えてしまっても困ることはないと思います。メモリに確保されるのがインスタンスで、概念上の話をする時はオブジェクトと言う感じで使い分けるのが普通かなと思います。

4

コメント欄を参考にした修正

2019/06/10 06:49

投稿

mightyMask
mightyMask

スコア143

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

具体例の追加

2019/06/10 05:45

投稿

mightyMask
mightyMask

スコア143

answer CHANGED
@@ -29,6 +29,7 @@
29
29
  Javaとかだとクラスクラスってのがあって、クラスはオブジェクトだとしていますが、これはクラスベースのオブジェクト指向に対して共通の概念ではなく、それこそ一つの流派っていう感じだと思います。この流派に従えば、上記に加え、
30
30
  - 人間 ∈ オブジェクト
31
31
  - クラス ⊆ オブジェクト
32
+ - オブジェクト ∈ オブジェクト
32
33
  - クラス ∈ クラス
33
34
 
34
35
  みたいのも成り立ってしまうって事になります。ちなみに第3の流派はこれに従った説明です。

2

誤字修正

2019/06/10 05:27

投稿

mightyMask
mightyMask

スコア143

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」のどの意味でも使われていて、かつ見分けがつきにくく、見分けがついたとしてもまた別の言い方が出来てしまいます。ややこしいですけどね。
6
6
 
7
7
  a. 猫は生物
8
8
  b. 猫は哺乳類

1

微修正

2019/06/10 05:13

投稿

mightyMask
mightyMask

スコア143

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