• ベストアンサー

インスタンス化とオブジェクト

インスタンス生成とオブジェクト作成はどう違うのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

伝わりにくそうなので具体的に書きました。 String str = new String("asd"); は、受け型のString型のインスタンス化といえる。 オブジェクト生成と呼んでも差し支えはない。 Object obj = new String("asd"); は、受け型のObject型のインスタンス化とはいえない。 そのため、オブジェクト生成と呼ばざるを得ない。 こんなんで、どうでしょう?

DINO-PIE
質問者

お礼

必ず右側と同じにしないといけないのですね。例文ありがとうございます。難しく考えすぎていたのかもしれません。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • thamansa
  • ベストアンサー率40% (95/232)
回答No.4

オブジェクト指向では、すべてのモノや事柄を「オブジェクト」として捉えます。この時点ではクラスという概念がなくても、オブジェクトは存在します。 一方、インスタンスとは、クラスという概念を具象化したものです。わかりにくいですが、ここにオブジェクトとインスタンスの違いがあります。 しかし、Java言語においては、すべてのオブジェクトはクラスから作られますので、すべてのオブジェクト=インスタンスとなります。 したがって、オブジェクト生成=インスタンス生成と考えて差し支えないといえます。 オブジェクト生成とインスタンス生成は結局同じことなのですが、ニュアンスの違いで使い分けることがあります。 No.2さんの回答も一例ですし、私は次のように考えます。 どのクラスであるかは重要ではなく、なんらかのオブジェクトを「生成」することをあらわすとき→オブジェクト生成と呼ぶ ある特定のクラスのオブジェクトを生成したことを強調したいとき→インスタンス生成と呼ぶ とはいえ、普段はきちんと使い分けず、深い意味もなくオブジェクトと言ったりインスタンスと言ってしまったりします。

DINO-PIE
質問者

お礼

ありがとうございました。

すると、全ての回答が全文表示されます。
回答No.2

2度目の質問ですね。 多くの場合、同じ意味で使用されます。 しかしもしかしたら、以下のように使い分けることがあるかも。 インスタンス化もしくはインスタンス生成は、ある特定のクラスのインスタンスを作成する場合。 オブジェクト生成は、そのクラスそのものではないものをインスタンス化して格納する場合。すなわち、格納する型が、インスタンス化するクラスのインターフェイスもしくはスーパークラスである場合、格納する型のインスタンス化とはいえないので、オブジェクト生成とよぶ。のかも。 私のイメージの範囲を超えていないかもしれませんが、インスタンス生成とは、特定のクラスのみについていう言葉で、オブジェクト生成とは任意の型の生成という違いがあるように思えます。 であるので、オブジェクト生成のほうが少し広い意味なのかなー。 こんな説明で伝わりましたか? どうでしょ?(特にほかの回答者の方)

すると、全ての回答が全文表示されます。
  • sikuari
  • ベストアンサー率37% (6/16)
回答No.1

インスタンスとはオブジェクトの実体です、通常同じ意味と考えていいと思います。 つまり、オブジェクト生成とは、インスタンス生成ということです。

DINO-PIE
質問者

お礼

同じなんですね。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A