import java.util.*;
/**
* An abstract class to model a Bird that has
* a name, a description, a favourite food
* and an empty vocabulary.
* @author M250 Module Team
* @version v1.0
*/
public abstract class Bird
{
private String name;
private String description;
private String favouriteFood;
private HashSet<String> vocabulary;
/**
* @param aName the bird's name
* @param aDescription The bird's description
*/
public Bird(String aName, String aDescription)
{
name = aName;
description = aDescription;
vocabulary = new HashSet<>(); //empty set
}
/**
* @return the bird's name
*/
public String getName()
{
return name;
}
/**
* Set the bird's name
* @param name the name to set
*/
public void setName(String name)
{
this.name = name;
}
/**
* Return a description of the bird
* @return the description
*/
public String getDescription()
{
return description;
}
/**
* Set the bird's description
* @param description the description to set
*/
public void setDescription(String description)
{
this.description = description;
}
/**
* Return the bird's favourite food
* @return the favouriteFood
*/
public String getFavouriteFood()
{
return favouriteFood;
}
/**
* Return the bird's vocabulary set
* @return vocabulary
*/
public HashSet<String> getVocabulary()
{
return vocabulary;
}
/**
* Set the bird's favourite food
* @param favouriteFood the favouriteFood to set
*/
public void setFavouriteFood(String favouriteFood)
{
this.favouriteFood = favouriteFood;
}
/**
* Tell whether a phrase is in the bird's vocabulary or not
* @param phrase to search for in vocabulary
* @return boolean true if phrase is in vocabulary and false otherwise
*/
public boolean isInVocabulary(String phrase)
{
return vocabulary.contains(phrase);
}
/**
* String representation of the bird
* @return a String representation of the bird
*/
public String toString()
{
return " A bird named " + getName() + " which has " + getDescription()
+ ", likes to eat " + getFavouriteFood();
}
/**
* Tell if two birds should be considered the same
* @return true if the birds are of the same class and have the same names
*/
public boolean equals(Object o)
{
Bird b = (Bird) o;
if (getClass().equals(b.getClass()))
{
return getName().equals(b.getName());
}
return false;
}
}
import java.util.*; /** * An abstract class to model a Bird that has * a name, a description, a favourite food * an
-
- Posts: 43759
- Joined: Sat Aug 07, 2021 7:38 am