日期:2014-05-20  浏览次数:20614 次

输出结果是什么
输出结果是什么

public class Example{
int x = 12;
public void method(int x){
x += x;
System.out.println(x);
}
public static void mian(String[] args){
Example t = new Example();
t.method(5);
}
}

------最佳解决方案--------------------
没有main方法,运行不了。

成员变量被局部变量隐藏了。
------其他解决方案--------------------


调用方法时传入的那个值才是真正带入运算的。
------其他解决方案--------------------
mian        main
12        被           5覆盖。
结果:10
------其他解决方案--------------------
mian        main
12        被           5覆盖。
结果:10
------其他解决方案--------------------
x+=x这句话怎么执行的。
------其他解决方案--------------------
好好工作!!!!
------其他解决方案--------------------
public static void mian(String[] args){         
Example t = new Example();         
t.method(5);     


写错了吧,main
------其他解决方案--------------------
结果是:10
------其他解决方案--------------------
结果是10,全局变量x没用上。
------其他解决方案--------------------
你这int x = 12;很明显是成员变量,使用时最好前面加上this,method方法体中x指示不明,按照局部作用域优先,int x = 12应该是被int x = 5覆盖了.因此method方法体中x都指的是参数int x = 5;
------其他解决方案--------------------
x:指的是局部变量x
this.x:是成员变量x
------其他解决方案--------------------
如果主函数存在的话结果是10
------其他解决方案--------------------
你的main()方法的main打错了,运行后是:
public class Example
{
int x = 12;
 public static void main(String[] args)
 {
        Example t = new Example();
        t.method(5);

    }
    
    public void method(int x)
    {
        x += x; //5+5=10 局部变量覆盖了成员变量
        System.out.println(x);//输出10
    }
   
}

------其他解决方案--------------------
main改对了就是10
------其他解决方案--------------------
10,int x = 12是成员变量,被method方法中的int x隐藏了
------其他解决方案--------------------
5+5=10
------其他解决方案--------------------
结果为10呀