アプリ版:「スタンプのみでお礼する」機能のリリースについて

インスタンスの作成タイミングについて質問です。
インスタンスとは、クラスを実体化して固有の情報を持たせるものだと思っています。
一度インスタンスを作成して、その中でもう一度同じインスタンスを作成することは、どのような場合が考えられるでしょうか?
(ex)
a.javaの中で b.javaのインスタンスbbを作成しました。bbでmethod()を実行してその中でもう一度b.javaのインスタンスccを作成して、今度はcc.の中でmethod2()を実行しています。bbではAテーブルに変更をかけ、ccではBテーブルに変更をかけていますが、AテーブルとBテーブルはXという列で関連を持たせています。

つたない質問ですが、どなたかご教授ください。

A 回答 (2件)

「同じクラスのインスタンスを生成している」という認識でいいですか?



public class A {
public void methodA() {
B bb = new B();
bb.method();

B cc = new B();
bb.method2();
}
}

上記のような状態をイメージしているのですが。

パッと考えられるのは、以下の3つでしょうか。
1.コンストラクタかほかのメソッドで値を設定されている。
 設定された値が違っていて、動作が異なる
2.一度実行するとbbやccの情報が内部で書き換わる。
 Aテーブル用にmethod()を呼ぶと、Bテーブル用にmethod2()を呼べない
3.特に強い理由はない
 単純に対象テーブルが分かれているので別変数/別インスタンスに分けただけ

>インスタンスとは、クラスを実体化して固有の情報を持たせるものだと思っています。
で書かれている「固有の情報」が共存できなかったんだと思いますが…
    • good
    • 0

もう一度同じインスタンスを生成して…の意味が分かりません。


b.java(Javaの命名規則に反しているので以下B.javaとします)のインスタンスはどうやって生成していますか?
一度目の生成と二度目の生成と、どちらも new B() としていますか?
new で生成した場合、できあがるインスタンスはそれぞれ別物ですので「もう一度同じインスタンスを生成して…」ということはできません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!