CSci 2101: Comparable Card class..


import java.util.ArrayList;

/**
 * 
 * This class represents a card
 *
 */
public class Card implements Comparable<Card>{

	final private String suit;
	final private String value;
	private int numericValue = 0;
	final private String[] values = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
	final private String[] suits = {"Hearts", "Spades", "Diamonds", "Clubs"};
	
	/**
	 * Card constructor
	 * @param suit
	 * @param value
	 */
	public Card(String suit, String value){
		this.suit = suit;
		this.value = value;
		for (int i = 0; i < 13; i++) {
			if (values[i].equals(value)) {
				numericValue = i + 2;			
			}
		}
	}
	
	
	public Deck getDeck() {
		ArrayList<Card> deck = new ArrayList<Card>();
		for (String suit: suits) {
			for (String value: values) {
				deck.add(new Card(suit, value));
			}
		}
		return new Deck(deck);
	}
	
	/**
	 * getter for suit
	 * @return suit
	 */
	public String getSuit(){
		return suit;
	}
	
	/**
	 * getter for value
	 * @return value
	 */
	public String getValue(){
		return value;
	}
	
	/**
	 * getter for numericValue
	 * @return numericValue
	 */
	public int getNumericValue(){
		return numericValue;
	}
	
	/**
	 * override toString() method
	 */
	public String toString(){
		return value + " of " + suit;
	}
	
	/**
	 * Compare the numeric values of this Card and the parameter Card
	 * @param that
	 * @return an int value
	 */
	public int compareTo(Card that){
		return this.numericValue - that.numericValue;
	}
				    }