No.3ベストアンサー
- 回答日時:
オブジェクトは『振る舞いや状態を有しているなにか』ですよ。
例で考えたら、人間じゃなくても、そのようなものを有しているものはすべてオブジェクトです。
オブジェクト、クラス、インスタンスの解釈の順序が問題でしょうね。
インスタンスは確かにインスタンスかもしれませんが、それも1つのオブジェクトですよ。
オブジェクトが最も抽象的です。
その結果、あらゆるインスタンスをオブジェクトと呼称することが出来ます。
まあ『オブジェクト指向言語』ですから、当たり前ですね。
No.2
- 回答日時:
言葉的なものとしては、それでいいです。
それ以上も以下もなく、言葉を足しても冗長になるだけですよ。
//Human型のクラス
class Human{
private String name;
public Human(String name){
this.name=name;
}
}
class Main{
public static void main(String[] args){
//Human型のクラスから作成したインスタンスAさん
Human A = new Human("Aさん");
//Human型のクラスから作成したインスタンスBさん
Human B = new Human("Bさん");
}
}
//クラスHuman、インスタンスA、B、実行用のクラスMainは全てオブジェクトと呼べる。
No.1
- 回答日時:
しばらく前にプログラミングの世界で「オブジェクト指向」ってのがIT業界で大流行しました。
そして、質問者さんが書かれたような、クラス、インスタンス、オブジェクトを、車や動物とかタイ焼きの例で説明する文章がいろんな雑誌・書籍に書かれていたものです。
「なんとなく納得させられるけど、よくわからない・・・」って、それらの解説を読んで、私も思ったし、たぶん多くの方も同じように感じていたと思います。
日経BP社より「オブジェクト指向でなぜつくるのか」という書籍を見ると、このような説明で理解しようとするのは、「オブジェクト指向の理解を妨げることになる」と書かれています。
この本の目次を紹介すると
1章.オブジェクト指向はソフトウエア開発を楽にする技術
2章.オブジェクト指向と現実は大違い
3章.OOPを理解する近道はプログラミング言語の歴史にあり
4章.OOPは無駄を省いて整理整頓するプログラミング技術
5章.メモリの仕組みの理解はプログラマのたしなみ
6章.OOPがもたらしたソフトウエアとアイデアの再利用
7章.汎用の整理術に化けたオブジェクト指向
8章.UMLは形のないソフトウエアを見る道具
9章.現実世界とソフトウエアのギャップを埋めるモデリング
10章.擬人化して役割分担させるオブジェクト指向設計
11章.オブジェクト指向設計から生まれた素敵な開発プロセス
12章.オブジェクト指向を使いこなそう
となっています。
そして、1章にて、質問者さんの読んだような説明で理解することは、混乱を増すことになると指摘されています。
そして、「オブジェクト指向でなぜつくるか」というタイトルで一冊の本ができあがるように、ここで回答できるような分量での説明は困難ですし、それをやったとしても、ほんとうのところは分からないと思います。
それは、泳ぎ方の説明みたいなものです。言葉で、書籍で「泳ぎ方」の説明を読んでも、写真をみても自分が泳げるようになることが無いのと同じです。
実際にプール、川、海で泳がない限り、泳げるようになれないのです。
そして、Javaという言語は、メモリの仕組みをできるだけ隠そうとした言語です。ですので、5章の内容からすれば、オブジェクト指向を理解したければ、メモリの仕組みを理解するのが必須であるC言語を学ぶほうが適しているという考え方も出てくるのです。
なお、3章では、構造化プログラミングの課題として、「残された課題はグローバル変数問題と貧弱な再利用」があげらえています。この問題の解決手段としてオブジェクト指向言語が出てきます。
ただし、オブジェクト指向だけでは、この課題の解決が十分にうまくいったように思えません。時々、「システム開発にオブジェクト指向の言語を採用した。でも、生産性は上がらず、かえって低下してしまった!」という嘆きが雑誌て紹介されたりしたものです。
実際のところ、オブジェクト指向言語で開発されたプロジェクトが2年以上かけて行われ、市場に投入する寸前のベータテストで、現場からの変更依頼を取り入れることが困難との判断が出て「発売中止!」となってしまったことがあります。これは、オブジェクト指向言語が悪いというより、「新しいソフト開発の目指すもの」の議論を十分に行わず、単に「オブジェクト指向で作るから変更が容易になる」という開発部隊の希望でスタートしてしまったことが問題であり、「要件定義」が甘かったのだと言えるかもしれません。(会社としては、数億円の損害となったみたいです・・・)
ただ、開発プロジェクトに参加したプログラマの立場からすれば、「オブジェクト志向言語を下手に使うと、生産性が大きく悪化する」ということを身にしみて感じたものです。
ということで、質問者さんへの回答にはなっていませんが、さしあたり、上記で紹介した書籍を読んでみてください。
そして、本を読むだけでなく、実際にJavaやC++、C#などで、簡単なプログラムを作ってみることです。そうすれば、オブジェクト指向のことが分かってくると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java 複数TBLのオブジェクトを1つの変数(オブジェクト)でまとめて管理したい 1 2022/12/17 00:12
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/05/21 02:41
- C言語・C++・C# C# 継承の問題で programに示された拡張をすべて含んだ上で,クラス Mammal に,そのオ 1 2022/07/22 09:48
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- その他(ソフトウェア) Figma 1 2023/06/23 14:22
- 哲学 形相的距離 1 2022/12/28 09:57
- Illustrator(イラストレーター) イラストレーターの面積を求める 1 2022/04/17 11:05
- Excel(エクセル) テキストの背後にあるオブジェクトとは 3 2023/01/03 20:22
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- PHP クラス 1 2022/08/08 15:12
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数の変数を宣言する時、同時...
-
変数名の付け方
-
private static という変数の修飾
-
C# インスタンスの破棄
-
オブジェクト参照がオブジェク...
-
インスタンスを同じ名前で作成...
-
インスタンス参照でアクセスで...
-
抽象クラスのインスタンス生成...
-
VB.NET getとsetの概念がわかり...
-
HashMapデータの並び替えについて
-
[Visual C#] 優先される処理に...
-
javaのクラスの作り方、エラー...
-
「インスタンス」の意味をわか...
-
C#において、同じインスタンス...
-
C#「オブジェクト参照が必要で...
-
VB6.0のクラスで、自分自身のイ...
-
このプログラミング誰か教えて...
-
変数の参照でエラーが出てしま...
-
Javaのサーブレットについて(...
-
WebLogic Server でのエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
private static という変数の修飾
-
複数の変数を宣言する時、同時...
-
インスタンス参照でアクセスで...
-
オブジェクト参照がオブジェク...
-
C# インスタンスの破棄
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
「インスタンス」の意味をわか...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
C#「オブジェクト参照が必要で...
-
javaのクラスの作り方、エラー...
-
SQLを連続発行する時の正しい(?...
-
他のファイルの変数参照
-
文字列を日付に変換でParseExce...
-
[Visual C#] 優先される処理に...
-
インスタンスを同じ名前で作成...
-
newしないインスタンス?実体化...
おすすめ情報