Implement the Badge class. A skeleton can be found
here.
You have to put your Badge class in the test3 package.
You have to use constructor chaining.
You have to use the static attribute random
in static method getRandom.
You should not add any public features to the class.
package test3;
import java.util.Random;
/**
* This class represents a badge. Each badge has a name.
*
* @author Franck van Breugel
*/
public class Badge
{
private String name;
/**
* Initializes this badge with the name "No Name".
*/
public Badge()
{
this("No Name");
}
/**
* Initializes this badge with the given name.
*
* @param name the name of this badge.
* @pre. name != null
*/
public Badge(String name)
{
this.setName(name);
}
/**
* Returns the name of this badge.
*
* @return the name of this badge.
*/
public String getName()
{
return this.name;
}
/**
* Sets the name of this badge to the given name.
*
* @param name the new name of this badge.
* @pre. name != null
*/
public void setName(String name)
{
this.name = name;
}
/**
* Tests whether this badge is the same as the given object.
* Two badges are the same if their names are the same, ignoring
* capitalizations. For example, badges with the names "John doe"
* and "john DOE" are considered equal.
*
* @param object an object.
* @return true if this badge is the same as the given object,
* false otherwise.
*/
public boolean equals(Object object)
{
boolean equal;
if (object != null && this.getClass() == object.getClass())
{
Badge other = (Badge) object;
equal = this.getName().toLowerCase().equals(other.getName().toLowerCase());
}
else
{
equal = false;
}
return equal;
}
// Although equals is overridden, you do not have to override hashCode in this test
/**
* Random object that can be used in the getRandom method.
*/
private static Random random = new Random(System.currentTimeMillis());
/**
* Returns a badge with either the name "John Doe" or the
* name "Jane Doe". The name is chosen randomly.
*
* @return a badge with either the name "John Doe" or the
* name "Jane Doe".
*/
public static Badge getRandom()
{
Badge badge;
if (Badge.random.nextBoolean())
{
badge = new Badge("John Doe");
}
else
{
badge = new Badge("Jane Doe");
}
return badge;
}
}