/* * Abstract class containing code to be inherited by card classes * Created on Feb 9, 2004 * @author kim * */ public abstract class AbsCard implements CardInterface { // POST: return suit of the card public abstract int getSuit(); // POST: return rank of the card public abstract int getRank(); // pre: other is a non-null Card // post: returns true iff this equals other public boolean equals(Object other) { if (other instanceof OtherCard) { OtherCard otherCard = (OtherCard) other; return (getRank() == otherCard.getRank()) && (getSuit() == otherCard.getSuit()); } else { return false; } } // post: returns a string representation of the suit protected String getSuitString() { String suitStr = null; switch (getSuit()) { case CLUBS: suitStr = "Clubs"; break; case DIAMONDS: suitStr = "Diamonds"; break; case HEARTS: suitStr = "Hearts"; break; case SPADES: suitStr = "Spades"; break; default: } return suitStr; } // post: returns a string representation of the rank protected String getRankString() { String rankStr = null; switch (getRank()) { case TWO: rankStr = "Two"; break; case THREE: rankStr = "Three"; break; case FOUR: rankStr = "Four"; break; case FIVE: rankStr = "Five"; break; case SIX: rankStr = "Six"; break; case SEVEN: rankStr = "Seven"; break; case EIGHT: rankStr = "Eight"; break; case NINE: rankStr = "Nine"; break; case TEN: rankStr = "Ten"; break; case JACK: rankStr = "Jack"; break; case QUEEN: rankStr = "Queen"; break; case KING: rankStr = "King"; break; case ACE: rankStr = "Ace"; break; default: } return rankStr; } // post: returns a string representation of this card public String toString() { return getRankString() + " of " + getSuitString(); } }