// Inheritance: design practice
// Strawberry class

public class Strawberry
{
	private boolean isEaten;
	private boolean isWashed;
	
	public Strawberry()
	{
		isEaten = false;
		isWashed = false;
	}
	
	// If strawberry is washed, eat it (return 0).
	// Else return 1.
	public int eat()
	{
		if (!isEaten && isWashed) { isEaten = true; return 0; }
		return 1;
	}

	// Wash the strawberry.
	public int wash()
	{
		if (!isEaten && !isWashed) { isWashed = true; return 0; }
		return 1;
	}
	
	public String toString()
	{
		return "This strawberry " + (isWashed? "is" : "isn't") + " washed." +
						"  It " + (isEaten? "has" : "hasn't") + " been eaten.";
	}
	
	public static void main(String[] args)
	{
		Strawberry b = new Strawberry();
		System.out.println("b is: " + b);
		System.out.println("Eating: " + b.eat() + " = " + b);
		System.out.println("Washing: " + b.wash() + " = " + b);
		System.out.println("Eating: " + b.eat() + " = " + b);
		System.out.println("Washing: " + b.wash() + " = " + b);
	}	

}