title: constructor and method used in program didnt understandble
body: <p>Explain me the code in method and this </p>
  
  <pre><code>  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());
      }
    }
  </code></pre>