package edu.columbia.cs.cs1007.comics;
/**
* This class implements a villain.
* @author Julia Stoyanovich (jds2109@columbia.edu)
* COMS 1007, Summer 2009
*
*/
public class Villain extends SuperBeing {
private Grudge _grudge;
// an innner class
private class Grudge {
private String _reason;
private String _target;
private Grudge(String reason, String target) {
_reason = reason;
_target = target;
}
private String verbalize() {
return "I have a grudge against " + _target + " because " + _reason;
}
}
/**
* Constructor
* @param name
* @param grudgeTarget
* @param grudgeReason
*/
public Villain(String name, String grudgeTarget, String grudgeReason) {
super(name);
_grudge = new Grudge(grudgeReason, grudgeTarget);
}
/**
* Convey your message to the world.
* @return message
*/
public String speakUp() {
return super.speakUp() + " : " + _grudge.verbalize();
}
/**
* Farewell, cruel world.
* @return Parting message
*/
public String die() {
String dialogue = getName() + " : I'll be back! \n" + super.die();
return dialogue;
}
}
|