Вопрос по java, string – порядок выполнения печати

8

Эта программа дает вывод -

<code>A 1 2
</code>

Не должно ли это дать вывод -

<code>1 A 2
</code>

поскольку сначала a.i должен вывести 1, а затем выполнить a.getI () и вывести A 2

<code>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());
     }
}
</code>
Нету. a.getI () это будет вызвано первым Subhrajyoti Majumder

Ваш Ответ

2   ответа
8

что делает JVM - это создание String. Итак, это начинается здесь:

a.i + " "

Это сначала сделано. Теперь у нас есть"1 ", Далее это обрабатывает это:

"1 " + a.getI()

Чтобы сшить две части, будет выполнен метод, чтобы знать, что сшивать вместе. Итак, теперь введите метод:

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

Первый оператор печати выполняется."A " выводится на консоль (1). Теперь метод возвращаетi + 1, который2. This means we have this:

"1 " + "2"

который"1 2", На этом этапе построение строки завершено, поэтому она передаетсяprintln(). Now "1 2" выводится на консоль. (2)

Как видите, сначала было (1) выполнено и затем (2). Итак, в консоли это приводит к:

A 1 2
12

В этом выражении:

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

Призыв кa.getI() сначала оценивается, а затем строка формируется путем объединенияa.i плюсa.getI()

Похожие вопросы