举个例子,我看到了下面三种写法,不知道一不一样,求解public class Person{
  ...
  Person p;
  ...
  Person.getName();
  ...
  p.getName();
  ...
  this.getName();
  ...
}

解决方案 »

  1.   

    这个问题有深度,我估计如果像LZ这样写,三者都是不能用的,建议LZ还是自己测试吧具体的我说不清楚,期待高人
      

  2.   

    恩 我的理解
    类是调用静态方法变量的 对象是调用非静态方法变量的 当然也可以调用静态的 不推荐这么写 this是指代当前对象的
      

  3.   

    Person.getName();
    getName为Person的静态类。p.getName();
    实例化Person p对象,调用其getName方法。this.getName();
    Person内部调用或子对象调用getName方法。
      

  4.   

    Person.getName();
    getName为Person的静态方法,Person类无需实例化即可调用
      

  5.   

    public class Person{
      ...
      Person p;
      ...
      Person.getName();        // 调用 Person 中 static 的 getName() 方法
      ...
      p.getName();             // 调用 Person 实例 p 的 getName() 方法 
      ...
      this.getName();          // 调用当前实例的 getName() 方法 
      ...
    }还有一种 Person.this.getName()    // 在 Person 的内部类中调用当前实例 Person 的 getName() 方法。另外 Person.getName() 与 p.getName() 两个同名的方法(一个静态,一个非静态)是不允许同时出现的。