Method Not Displaying Properly
<p>The method "aboveAverage" in the following code is not displaying correctly and I've tried everything I can. Could someone please explain what's going wrong?</p>

<p>My code:</p>

<pre><code>import java.util.*;
public class DailyCatch
{
  private int fishermanID, fisherID;
  private String dateOfSample, date;
  private double[] fishCaught = new double[10];
  private int currWeight = 0;
  private String summary;
  private double average;
  private int aboveAvg;

  public DailyCatch() {  }

  public DailyCatch (int fishermanID, String dateOfSample)
  {
    fisherID = fishermanID;
    date = dateOfSample;
  }

  public DailyCatch (int fishermanID, String dateOfSample, String weight)
  {
    this(fishermanID, dateOfSample);
    readWeights(weight);
  }

  public void addFish(double weight)
  {
    if (currWeight &gt; 10)
    {
       // array full
    }
    else
    {
      fishCaught[currWeight] = weight;
      currWeight += 1;  // update current index of array
    }
  }

  private void readWeights(String weightsAsString) 
  {
    String[] weightsRead = weightsAsString.split("\\s+");
    for (int i = 0; i &lt; weightsRead.length; i++) 
    {
       this.addFish(Double.parseDouble(weightsRead[i]));
    }
  } 

  public String toString()
  {
    return "Fisherman ID: " + fisherID + "\nDate:" + date + "\nFish Caught with Weights: " + Arrays.toString(fishCaught);
  }

  public void printWeights()
  {
     for (int i = 0; i &lt; fishCaught.length; i++)
     {
          System.out.println(fishCaught[i]);
     } 
  }

  public double averageWeight()
  {
      double sum = 0;
     double count = 0;
     for (int i = 0; i &lt; fishCaught.length; i++)
     {
          if (fishCaught[i] != 0)
          {
                  sum += fishCaught[i];
              count += 1;
                  average = sum/count;
          }
 }
  return average;
   }

    public String getSummary()
{   int storyTellerCount = 0;
    int keeperCount = 0;
    int throwBackCount = 0;
    for (int i = 0; i &lt; fishCaught.length; i++)
    {
        if (fishCaught[i] &gt; 5)
        {
            storyTellerCount++;
        }

        else if (fishCaught[i] &gt;=1 &amp;&amp; fishCaught[i] &lt;= 5)
        {
            keeperCount++;
        }

        else if (fishCaught[i] &lt; 1 &amp;&amp; fishCaught[i] &gt; 0)
        {
            throwBackCount++;
        }

    }  String summary = ("\nStoryteller - " + storyTellerCount+ "\nKeeper - " + keeperCount + "\nThrowback - " + throwBackCount);

        return summary;
}

public int aboveAverage()
{   
    int greatAvgCount = 0;
    for (int i = 0; i &lt; fishCaught.length; i++)
    {
        if (fishCaught[i] &gt; average)
        {
            aboveAvg = greatAvgCount++;
        }
    }
    return aboveAvg;
}   

}
</code></pre>

<p>Test Code:</p>

<pre><code>public class BigBass
{
public static void main (String[]args)
{
//Part 1
DailyCatch monday1 = new DailyCatch(32, "4/1/2013", "4.1 5.5 2.3 0.5 4.8 1.5");
System.out.println(monday1);

//Part 2
DailyCatch monday2 = new DailyCatch(44, "4/1/2013");
System.out.println(monday2);
monday2.addFish(2.1);
monday2.addFish(4.2);
System.out.println(monday2);

//Part 3
System.out.println("\n\nSUMMARY OF FISHERMAN 32");
System.out.println(monday1.getSummary());

//Part 4
double avg = monday1.averageWeight();
System.out.printf("\nThere are %d fish above the average weight of %.1f.", monday1.aboveAverage(), avg);
}
}
</code></pre>

<p>I just need to get Part 4 to work here. What it does is return that there have been 2 fish caught that are above average when I know it should be 3. The average is 3.1.</p>
