为什么最后运行结果是x=20?

public class Mytest {
    int x=30;
    public static void main(String args[]){
        int x=20;
        Mytest ta=new Mytest();
        ta.Method(x);
        System.out.println("The x value is"+x);
    }
    void Method(int y){
        int x=y*y;
    }
}

因为Method方法里面的x是局部变量,计算的值无法返回main函数。

方法内部的输出x优先访问局部变量。

1.main方法和Method方法里的变量x都是局部变量。

2.main方法里的x的值并没有被改变,他只是被当成参数借用了一下来得到Method方法里的x值。

3.当main方法里输出x时优先输出局部变量x,而不是成员变量x,这是java的就近原则。