public class EqualVarible {
int i=2;
void mv() {
int i=6;
System.out.println("i=" +i);
System.out.println("this.i=" +this.i);   //这个this.i是什么个意思?
 }
public static void main (String args[]) {
EqualVarible loc = new EqualVarible();
loc.mv();}
}

解决方案 »

  1.   

    this指的是对象自身的引用
    你代码中的this.i=2,i=6
      

  2.   

    可是它不是在这个花括号中已经为i赋值为6了吗? 是说this.i 就是全局变量的那个i赋的值了吗?
      

  3.   

    主要是你这里边有两个同名的 i 变量
    这样在方法中默认是用的局部变量(就近原则)
    当你需要调用全局变量的时候就需要用this了
      

  4.   

    lz  等你学到对象  你就恍然大悟了
    说白了 this就是自身
      

  5.   

    在mv方法中,i是一个局部变量,System.out.println("i=" +i);
    这句输出的是局部变量i 的值
    而this.i只的是该类型对象的i,也就是全局变量,所以等于2
      

  6.   

    this  是代表本类对象。 它可以去调用本类的 全局变量和方法。
      

  7.   

    this就是代表队自身的引用,一般就是用来区别在程序里面定义了俩个同名的变量。。
    说白了,就是起区别作用的。。
      

  8.   

    this是一个指向当前对象的引用,所以this.i为当前对象的i!
    this可以很好的解决类成员变量和局部变量冲突的问题。public class User {
        private String name;
        private String password;    public User(String name, String password) {
            this.name = name;//如果不用this的话,又得定义变量名,在实际的项目中,变量命名是
                             //一个很麻烦的问题,这样就可以很好的解决这个问题。
            this.password = password;
        }
    }等楼主看完,面向对象了就知道了!
      

  9.   

    全局变量和局部变量同名  ,this指向全局变量  this.i=2  
      

  10.   

    this就是指向当前对象,你的当前只有一个对象EqualVarible,this.i就是指EqualVarible.i void vm()中的i是局部变量 作用域只是在vm()这个方法里,一旦出了这个方法, i值就不是依据局部定义了 所以它取的是全局的变量i的值