2012-04-28 22 views
7

Chương trình này cung cấp cho đầu ra -in của thực

A 1 2 

nên không nó cung cấp cho đầu ra -

1 A 2 

từ ai đầu tiên nên in 1 và sau đó a.getI() thực hiện và nên in Một 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()); 
    } 
} 
+1

Không. a.getI() cái này sẽ được gọi trước –

Trả lời

11

Trong cụm từ này:

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

Các cuộc gọi đến a.getI() được đánh giá đầu tiên, và sau đó các chuỗi được hình thành bằng cách ghép a.i cộng a.getI()

7

Điều đầu tiên JVM không được xây dựng String. Vì vậy, nó bắt đầu ở đây:

a.i + " " 

Điều này được thực hiện trước tiên. Bây giờ, chúng tôi có "1 ". Tiếp theo, nó xử lý việc này:

"1 " + a.getI() 

Để ghép hai phần, phương pháp sẽ được thực hiện để biết cần ghép nối với nhau. Vì vậy, bây giờ nhập metod:

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

Tuyên bố in đầu tiên được thực hiện. "A " được in trên bảng điều khiển(). Bây giờ, phương thức trả về i + 1, là 2. Điều này có nghĩa chúng tôi có điều này:

"1 " + "2" 

đó là "1 2". Tại thời điểm này xây dựng chuỗi được thực hiện, vì vậy nó được chuyển đến println(). Bây giờ "1 2" được in ra cửa sổ Console.()

Như bạn có thể thấy, đầu tiên là() thực hiện và sau đó(). Vì vậy, trong bảng điều khiển, kết quả này sẽ có:

A 1 2 
Các vấn đề liên quan