K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]


新規投稿 | 開設者ホームページへ戻る | ヘルプ


[2194] オブジェクト指向について
返信


投稿者:C××
2019/10/10 00:25:10

Link:
 初投稿です

 オブジェクト指向についてわかったような気になったり、急にわからなくなったりという哲学じみた事を繰り返している内に、最近このサイトに行き着いた者です。


 ここの記事やほかのサイトを読んでるうちに、結局のところ
「オブジェクトというのはプログラム(ソフトウェア)を保持することができる変数」で
「小規模なソフトウェアの組み合わせで1つのソフトウェアを作るのがオブジェクト指向」という結論にたどり着いたのですが、実際のところこの解釈はどうなのでしょうか。

 犬猫や、レストランの例えよりは一番しっくり来た表現なのですが、厳密には違うような気がします。( operator=() などで定義しないと代入できない辺り)

 はっきりとしない質問で恐縮ですが、意見を聞かせてくだされば幸いです。
[ この投稿を含むスレッドを表示] [ この投稿を削除]



[2195] Re:オブジェクト指向について
返信


投稿者:(ぱ)こと管理人
2019/10/13 01:47:58

Link:
はじめまして。

> ここの記事やほかのサイトを読んでるうちに、結局のところ
>「オブジェクトというのはプログラム(ソフトウェア)を保持することができる変数」で
>「小規模なソフトウェアの組み合わせで1つのソフトウェアを作るのがオブジェクト指向」
>という結論にたどり着いたのですが、実際のところこの解釈はどうなのでしょうか。

まず、C++を除くたいていのオブジェクト指向言語では、オブジェクトを変数に
格納することはできません。変数に格納できるのはオブジェクトへの参照だけです。

そのうえで、オブジェクトという「小規模なソフトウェア」の組み合わせで
それなりの規模のプログラムを作る、というのはそれなりによさげな解釈かと
思います。単に「小規模なソフトウェアの組み合わせで1つのソフトウェアを作る」
だけだと、「モジュール化」と区別がつきませんし。
[ この投稿を含むスレッドを表示] [ この投稿を削除]



[2196] Re:オブジェクト指向について
返信


投稿者:C××
2019/10/14 18:40:43

Link:
回答ありがとうございます。

Javaのメソッド呼び出しの文法が、C++におけるオブジェクトの実体へのアクセスと同じであるため、混乱していました。

C++からJavaを学ぶ場合(あるいはその逆)
文法が似ているから楽だと書いているサイトをよく見ますが、
かえって紛らわしいなと感じました。

[ この投稿を含むスレッドを表示] [ この投稿を削除]



[2197] Re:オブジェクト指向について
返信


投稿者:(ぱ)こと管理人
2019/10/17 01:47:29

Link:
>Javaのメソッド呼び出しの文法が、C++におけるオブジェクトの実体へのアクセスと
>同じであるため、混乱していました。

C++はオブジェクトの実体とポインタの両方を扱えるので

obj.hoge();



obj->hoge();

は別の意味ですが、

Javaはポインタしかないので、Javaにおける

obj.hoge();

は、C++における

obj->hoge();

と同値です。ポインタしかないJavaではわざわざ1文字多い「->」を使うより、
全部「.」を使う方が打鍵数が少なくてよいとは思いますが、紛らわしいのは
確かですね。

ただ、なんにせよ、オブジェクト指向においては「どのオブジェクトに仕事を
頼むのか」が重要なので、「ポインタ(参照)でオブジェクトを指す」のは
概念的にわかりやすく、C++のように実体を扱える言語より、なんでも参照
(ポインタ)の言語の方がとらえやすいかとは思います。どちらが実用的かとか、
そういう話は置いておくとして。

継承を考えればなおのこと、です。
[ この投稿を含むスレッドを表示] [ この投稿を削除]