//Pet3.java

/**
 * Revised class for basic pet data: name, age, and weight.
 * Constructors call another constructor.
 */
public class Pet3
{
    private String name;
    private int age;   //in years
    private double weight;//in pounds

    public Pet3
    (
        String initialName,
        int initialAge,
        double initialWeight
    )
    {
        set(initialName, initialAge, initialWeight);
    }

    public Pet3
    (
        String initialName
    )
    {
        this(initialName, 0, 0);
    }

    public Pet3
    (
        int initialAge
    )
    {
        this("No name yet.", initialAge, 0);
    }

    public Pet3
    (
        double initialWeight
    )
    {
        this("No name yet.", 0, initialWeight);
    }

    public Pet3()
    {
        this("No name yet.", 0, 0);
    }

    public void setPet
    (
        String newName,
        int newAge,
        double newWeight
    )
    {
        set(newName, newAge, newWeight);
    }

    public void setName
    (
        String newName
    )
    {
        set(newName, age, weight);//age and weight are unchanged.
    }

    public void setAge
    (
        int newAge
    )
    {
        set(name, newAge, weight);//name and weight are unchanged. 
    }

    public void setWeight
    (
        double newWeight
    )
    {
        set(name, age, newWeight);//name and age are unchanged.
    }

    private void set
    (
        String newName,
        int newAge,
        double newWeight
    )
    {
        name = newName;
        if ((newAge < 0) || (newWeight < 0))
        {
            System.out.println("Error: Negative age or weight.");
            System.exit(0);
        }
        else
        {
            age = newAge;
            weight = newWeight;
        }
    }

    public String getName()
    {
        return name;
    }

    public int getAge()
    {
        return age;
    }

    public double getWeight()
    {
        return weight;
    }

    public void writeOutput()
    {
        System.out.println("Name:   " + name);
        System.out.println("Age:    " + age + " years");
        System.out.println("Weight: " + weight + " pounds");
    }
}
