title: Best practices for accessing methods of one class from methods of another class
body: <p>So we have this class <code>class Identity</code> and also a  <code>class CanineCommunication</code></p>
  
  <p>then if we want to define a class</p>
  
  <pre><code>class Dog {
      public Dog() {
          Identity id;
          CanineCommunication cc;
      }
      id.getParticulars(); //we can call all the public Identity methods
      cc.getMoves(); //and also the public CanineCommunication methods
  }
  </code></pre>
  
  <p>But assuming the methods in the class CanineCommunication require the use of Identity methods - one obvious way to do it would be:</p>
  
  <pre><code>class CanineCommunication {
      getNoises(Identity id) {
          id.getParticulars();
          //~~if small be squeaky &amp;c~~
      }
  </code></pre>
  
  <p>Another way would be:</p>
  
  <pre><code>class CanineCommunication {
      Identity id;
      public canineCommunication (Identity id) {
           this.id=id;
      }
      getNoises() {
          id.getParticulars();
          //~~if small be squeaky &amp;c~~
      }
  </code></pre>
  
  <p>How do these methods compare? And are there any other (better/worse) ways to achieve this?</p>