/*
*测试全局变量的操作
*/
public class GlobalVar
{
 int a = 10;
 double b = 20;
 public static void main(String[] args)
 {
     GlobalVar globalVar = new GlobalVar();
         System.out.println("before changed value a = " + globalVar.a);
     globalVar.print();
     System.out.println("after changed the value a = " + globalVar.a); 
 }
 public void print()
 {
     System.out.println("the global variable a = " + a + ",b = " + b);
     a=30;
     System.out.println("the global variable a = " + a + ",b = " + b);
 }
}
在上面这个程序中为什么输出的是before changed value a = 10
                              the global variable a = 10,b = 20.0
                              the global variable a = 30, b = =20.0
                              after changed the value a = 30
为什么不是before changed value a = 10
          after changed the value a = 30
          the global variable a = 10,b = 20.0
          the global variable a = 30, b = =20.0
谢了

解决方案 »

  1.   

    System.out.println("before changed value a = " + globalVar.a);
    globalVar.print();
    ~~~~~~~~~~~~~~~~~~
    System.out.println("after changed the value a = " + globalVar.a); 
      

  2.   

    狂汗~~~~
    不知楼主怎么理解函数和System.out.println的
      

  3.   

    System.out.println(“XXXXXX”)=System.out.println(“XXXXXX”)+回车
    当时就是这样的
      

  4.   

    globalVar.print() 即调用
     public void print()
     {
         System.out.println("the global variable a = " + a + ",b = " + b);
         a=30;
         System.out.println("the global variable a = " + a + ",b = " + b);
     }
    所以结果是
                                  before changed value a = 10
                                  the global variable a = 10,b = 20.0
                                  the global variable a = 30, b = =20.0
                                  after changed the value a = 30
      

  5.   

    你的程序的流程是这样的
    先执行
    System.out.println("before changed value a = " + globalVar.a);
    在调用
    globalVar.print();
    打印出
    the global variable a = 10,b = 20.0
    the global variable a = 30, b = =20.0 
    然后执行
     System.out.println("after changed the value a = " + globalVar.a);
      

  6.   

    建议你想了解下程序的流程,应该会解决这个问题的,或者把
    globalVar.print();
    System.out.println("after changed the value a = " + globalVar.a); 
    的顺序换一下,在试下,看看和你的期望的结果有什么差异,这样你就会理解了!
    相信你会成功的!
      

  7.   

    在上面这个程序中为什么输出的是before changed value a = 10
                                  the global variable a = 10,b = 20.0
                                  the global variable a = 30, b = =20.0
                                  after changed the value a = 30
    为什么不是before changed value a = 10
              after changed the value a = 30
              the global variable a = 10,b = 20.0
              the global variable a = 30, b = =20.0________________________________________________系统在执行完第一句已经调用了print()函数,然后再执行函数体内的方法!