public class Chicken
{
  private String name;
  private int age;
  private double weight;
  private  char gender;

  public Chicken(String name, int age, double weight, char gender)
  {
    this.name = name;
    if (age < 0)
    {
      System.err.println("No negative ages for chickens.");
      System.exit(1);
    }
    else
    {
      this.age = age;
    }
    if (weight < 0.0)
    {
      System.err.println("No negative weights for chickens.");
      System.exit(1);
    }
    else
    {
      this.weight = weight;
    }
    if (gender == 'f' || gender == 'F')
    {
      this.gender = 'F';
    }
    else if (gender == 'm' || gender == 'M')
    {
      this.gender = 'M';
    }
    else
    {
      System.err.println("Gender must be 'M' or 'F'");
      System.exit(1);
    }
  }

  public String getName()
  {
    return this.name;
  }

  public int getAge()
  {
    return this.age;
  }

  public char getGender()
  {
    return this.gender;
  }

  public double getWeight()
  {
    return this.weight;
  }

  public void setWeight(double pounds)
  {
    if (pounds >= 0.0)
    {
      this.weight = pounds;
    }
    else
    {
      System.err.println("No floating chickens.");
      System.exit(1);
    } 
  }

  public void setAge(int years)
  {
    if (years >= 0)
    {
      this.age = years;
    }
    else
    {
      System.err.println("No negative ages.");
      System.exit(1);
    } 
  }

  public String toString()
  {
    String retval;

    retval = this.name + " is a " + this.age + " year old ";
    if (this.gender == 'F')
    {
      retval = retval + "hen ";
    }
    else
    {
      retval = retval + "rooster ";
    }
    retval = retval + "weighing " + this.weight + " pounds.";
  
    return retval;
  }

  public void sing()
  {
    System.out.println(name + " tries to sing, but only manages to make clucking sounds.");
  }

  private String getPosessive()
  {
    if (this.gender == 'F')
    {
      return "her";
    }
    else
    {
      return "his";
    }
  }

  public void fly()
  {
    System.out.println(name + " flaps " + getPosessive() + " wings and manages to fly a few feet.");
  }

  public void layEgg()
  {
    if (this.gender == 'F')
    {
      System.out.println(name + " lays an egg.");
    }
    else
    {
      System.out.println(name + " tries with all his might, but fails to lay an egg.");
    }
  }

  
















  public static void main(String args[])
  {
    Chicken c1 = new Chicken("Henrietta", 2, 12.0, 'F');
    Chicken c2 = new Chicken("Eggman", 3, 13.0, 'M');

    String name1;
    name1 = c1.getName();


    System.out.println(c1);
    c1.setWeight(24.0);
    System.out.println(c1);

    c1.sing();
    c2.fly();
    c1.layEgg();
    c2.layEgg();

  }
}  
