title: Java: When to make methods static v. instance
body: <p>I have a <code>Gene</code> class that keeps track of genes. <code>Gene</code> has a method for calculating the distance between two genes. Are there any reasons to make it static?</p>
  
  <p>Which is better?</p>
  
  <p><code>public static int geneDistance(Gene g0, Gene g1)</code></p>
  
  <p>or</p>
  
  <p><code>public int geneDistance(Gene other)</code></p>
  
  <p>Arguments for/against making it static? I understand what it means for a member to be static, I'm just interested in its implications for maximum cleanliness/efficiency/etc.</p>
  
  <p>I repeat the same pattern for returning trimmed versions of two genes, finding matches between genes, finding matches between animals (which contain collections of genes), etc.</p>