title: Varying the order of method calling for different instances of a class
body: <p>What is the best way of manipulating the order things are done based on some conditions (other than writing them again with the different order)?</p>
  
  <p>Let's say there is a Person class and each object of Person represents a different human.</p>
  
  <pre><code>class Person{
      int eatingPriority = 3;
      int sleepingPriority = 2;
      int recreationPriority = 1;
  
      void eat() {/*eats*/}
      void sleep() {/*sleeps*/}
      void watchTv() {/*watches tv*/}
  
      void satisfyNeeds() {
          //HOW TO DO THIS
      }
  }
  </code></pre>
  
  <p>How can I make the <code>satisfyNeeds()</code> methods call the other three methods based on their priority?</p>
  
  <p>Note: I want to make it clear that priorities can change from Person to Person.</p>