8

このプログラムは出力を提供します-

A 1 2

それは出力を与えるべきではありません -

1 A 2

最初に ai が 1 を出力し、次に a.getI() が実行されて A 2 を出力する必要があるため

public class A1{

     int i=1;

     public int getI(){
          System.out.print("A ");
          return i+1;
     }

     public static void main(String args[]){
          A1 a=new A1();
          System.out.print(a.i+" "+a.getI());
     }
}
4

2 に答える 2

12

この式では:

a.i+" "+a.getI()

への呼び出しが最初に評価され、その後にプラスa.getI()を連結して文字列が形成されます。a.ia.getI()

于 2012-04-28T13:50:07.380 に答える
8

JVMが最初に行うことは、文字列を作成することです。だからそれはここから始まります:

a.i + " "

これは最初に行われます。今、私たちは持ってい"1 "ます。次に、これを処理します。

"1 " + a.getI()

2つのパーツをステッチするために、メソッドが実行されて、何をステッチするかがわかります。だから、今、方法を入力してください:

System.out.print("A ");
return i+1;

最初のprintステートメントが実行されます。"A "コンソールに出力されます(1)。これで、メソッドはi + 1、を返します。これは2です。これは、これがあることを意味します。

"1 " + "2"

これは"1 2"です。この時点で文字列の構築が完了したので、に渡されprintln()ます。"1 2"これでコンソールに出力されます。(2

ご覧のとおり、最初に(1)が実行され、次に(2)が実行されました。したがって、コンソールでは、次のようになります。

A 1 2
于 2012-04-28T13:55:28.167 に答える