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

this代表什么
this代表什么
class Person {
  public void eat(Apple apple) {
    Apple peeled = apple.getPeeled();
    System.out.println("Yummy");
  }
}

class Peeler {
  static Apple peel(Apple apple) {
    // ... remove peel
    return apple; // Peeled
  }
}

class Apple {
  Apple getPeeled() { return Peeler.peel(this); }
}

public class PassingThis {
  public static void main(String[] args) {
    new Person().eat(new Apple());
  }
}

------解决方案--------------------
class Apple {
  Apple getPeeled() { return Peeler.peel(this); }
}

this 是指Apple对象本身

Apple  a = new Apple();
这个时候如何执行下面的语句
a.getPeeled();
效果是这样的
return Peeler.peel(a);