1

このコードは私にとってはうまくいきます。

public class ABC 
{
  public int sayHello()
  {
    System.out.println("Hello Friends...!!!");
    return 1;
  }
}

public class XYZ
{
  public static void main(String[] args){
    // 1 Option
    ABC objABC = new ABC();
    int i = objABC.sayHello();

    // 2 Option
    int j = new ABC().sayHello();
  }
}

ここでは、sayHello()メソッドClass ABCを 2 つの異なる方法で呼び出しました。どのオプションが最適であり、使用するのに適しているかを知りたいだけです。

4

8 に答える 8

2

間違いなく最初の選択肢

1) 同じメソッドを再度呼び出す必要がある場合、コンストラクターを再度呼び出す必要はありません。つまり、別のインスタンスを作成しません。

2) ストリームを閉じるか、null に設定する場合 (IO 関連の操作に必要な場合など)、2 番目のオプションではそのための参照オブジェクトが提供されません。

于 2013-07-09T09:51:42.723 に答える
1

ABC objABC = new ABC();はるかに優れています。オブジェクトのインスタンスがあり、いつでも使用できます

呼び出しを行いたい場合 int j = new ABC().sayHello();は、静的にする方が良いと思うので、クラスインスタンスを作成せずに呼び出すことができますABC.sayHello()

于 2013-07-09T09:51:28.380 に答える
1

オブジェクトへの参照を持たずにメソッドを実行したいだけの場合は、1つのメソッドのみを呼び出すために使用されます。

int j = new ABC().sayHello(); 

しかし、

ABC objABC = new ABC();
int i = objABC.sayHello(); 

これは、将来、sayHello() をさらに呼び出すために objABC が必要になる場合に適しています。

于 2013-07-09T09:53:47.947 に答える
1

場合によります。メソッドが呼び出されたオブジェクトへの参照を持たずにメソッドを実行したいだけの場合:

int j = new ABC().sayHello(); 

そのオブジェクトへの参照を保持し、後で再利用したい場合は、次のようにします。

ABC objABC = new ABC();
            int i = objABC.sayHello();
于 2013-07-09T09:49:00.933 に答える
0

間違いなく最初の選択肢

1) 同じメソッドを再度呼び出す必要がある場合、コンストラクターを再度呼び出す必要はありません。つまり、別のインスタンスを作成せず、新しいオブジェクトを作成するための読み込み時間を節約できます。

2)ストリームを閉じるかnullに設定する場合(IO関連の操作に必要な場合など)、2番目のオプションでは参照オブジェクトが提供されず、毎回コンストラクターが呼び出されます。

于 2013-07-09T11:52:40.527 に答える