a()调用的是他自己的int x=25;
没调用int x=1;      //全局变量很简单的问题啊

解决方案 »

  1.   

    对了我问错了是应该是b()方法,在public void paint(Graphics g){}中而paint中已定义了个局部的变量x,那么为什么在paint中b()方法的中的x没给屏蔽掉而还是用的那个全局变量,是不是b()在paint外定义的缘故呢??
      

  2.   

    x*=10;
    晕,这句话不是定义
    只是个运算而已
    如果是定义,前面要加定义关键字int
    应该这样int x=(this.x*=10);
      

  3.   

    a用的是局部变量
    b用的是全局变量
    其实在b里完全可用this.x
    都是程序员自己给自己找的,为什么自己不写清楚点呢?
      

  4.   

    to redlaputa(吾心如秋思,爱随雨后归) 
    可能误会我的意思了,简单点问吧为什么在paint方法中第一个b()中的
    System.out.println("\ninstance variable x is "+x+" on entering b");
    输出的x是 1 而不是 paint()中定义的 5 呢?to lecy(阿德)那为什么b()在paint()中了还用的是全局变量呢?
      

  5.   

    一个方法中的变量对另一个方法不可见,只在方法内有用,另一个方法无法调用,这样做是有好处,利于封装,以后更改了某个方法,如果是个独立的话,也不会对程序其他块有什么影响。对这题而言也就是a(),b()要么使用自己的x,要么使用全局变量中的x,对于b()方法而言,如果没有int x=1;      //全局变量这一行,编译不会通过的。