clase tarjeta de generar un nuevo objeto de tarjeta

k778899:

Estoy creando una clase de tarjeta que le da un valor de palo y el rango de una tarjeta. Mi problema es que sólo se crea una tarjeta y que es el único que imprime a pesar de que mi método principal crean nuevas tarjetas a prueba. Lo que necesito son diferentes tarjetas creadas a prueba si son iguales. Cualquier ayuda en cuanto a qué método es mi problema sería de apreciar. Esta es una experiencia de aprendizaje para mí, así como la identificación de orientación soluciones no exactas.

enum Suit {
    HEARTS, DIAMONDS, CLUBS, SPADES
};

enum Rank {
    ACE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING
};

public class Card {

private Rank aRank;
private Suit aSuit;

public Card(Suit aSuit, Rank aRank) {
    this.aSuit = aSuit;
    this.aRank = aRank;
}

public Rank getRank() {
    return aRank;
}

public Suit getSuit() {
    return aSuit;
}

public String toString() {
    String cardValue = "";
    String rank = "";
    String suit = "";
    switch (aSuit) {
    case HEARTS:
        suit = "hearts";
    case DIAMONDS:
        suit = "diamonds";
    case CLUBS:
        suit = "clubs";
    case SPADES:
        suit = "spades";
    }

    switch (aRank) {
    case ACE:
        rank = "Ace";
    case TWO:
        rank = "2";
    case THREE:
        rank = "3";
    case FOUR:
        rank = "4";
    case FIVE:
        rank = "5";
    case SIX:
        rank = "6";
    case SEVEN:
        rank = "7";
    case EIGHT:
        rank = "8";
    case NINE:
        rank = "9";
    case TEN:
        rank = "10";
    case JACK:
        rank = "Jack";
    case QUEEN:
        rank = "Queen";
    case KING:
        rank = "King";
    }
    cardValue += rank + " of " + suit;
    return cardValue;
    }

public int compareTo(Card other) {
    int rankComparison = aRank.compareTo(other.aRank);
    return rankComparison != 0 ? rankComparison : aSuit.compareTo(other.aSuit);
}

public boolean equals(Card other) {
    if (aRank == other.aRank)
        return true;
    if (aSuit == other.aSuit)
        return true;
    return false;
}

// Main method to test.
public static void main(String[] args) {
    Card c1 = new Card(Suit.SPADES, Rank.FIVE);
    Card c2 = new Card(Suit.HEARTS, Rank.TWO);
    Card c3 = new Card(Suit.CLUBS, Rank.EIGHT);
    Card c4 = new Card(Suit.DIAMONDS, Rank.FIVE);

    Card r1 = new Card(Suit.CLUBS, Rank.ACE);
    Card r2 = new Card(Suit.DIAMONDS, Rank.JACK);
    Card r3 = new Card(Suit.HEARTS, Rank.QUEEN);
    Card r4 = new Card(Suit.SPADES, Rank.KING);

    System.out.println(c1);
    System.out.println(c2);
    System.out.println(c3);

    if (c1.compareTo(c2) < 0)
        System.out.println(c2 + " outranks " + c1);
    else if (c1.compareTo(c2) > 0)
        System.out.println(c1 + " outranks " + c2);

    if (c1.compareTo(c3) < 0)
        System.out.println(c3 + " outranks " + c1);
    else if (c1.compareTo(c3) > 0)
        System.out.println(c1 + " outranks " + c3);

    if (c1.compareTo(c1) == 0)
        System.out.println(c1 + " is equal to " + c1);
    else
        System.out.println(c1 + " is NOT equal to " + c1);

    if (c1.equals(c4))
        System.out.println(c1 + " is equal to " + c4);
    else
        System.out.println(c1 + " is NOT equal to " + c4);

    if (r1.compareTo(r2) < 0)
        System.out.println(r1 + " comes before " + r2);
    else if (r1.compareTo(r2) > 0)
        System.out.println(r1 + " comes after " + r2);
    else
        System.out.println(r1 + " is equal to " + r2);

    if (r4.compareTo(r3) < 0)
        System.out.println(r4 + " comes before " + r3);
    else if (r4.compareTo(r3) > 0)
        System.out.println(r4 + " comes after " + r3);
    else
        System.out.println(r4 + " is equal to " + r3);
}
}
Shreyas Srivastava:

El error está en su toStringmétodo. Es necesario poner puntos de interrupción en sus estados de cuenta de casos, como a continuación:

   public String toString() {
      String cardValue = "";
      String rank = "";
      String suit = "";
      switch (aSuit) {
        case HEARTS:
          suit = "hearts";
          break;
        case DIAMONDS:
          suit = "diamonds";
          break;
        case CLUBS:
          suit = "clubs";
          break;
        case SPADES:
          suit = "spades";
          break;
      }

    switch (aRank) {
      case ACE:
        rank = "Ace";
        break;
      case TWO:
        rank = "2";
        break;
      case THREE:
        rank = "3";
        break;
      case FOUR:
        rank = "4";
        break;
      case FIVE:
        rank = "5";
        break;
      case SIX:
        rank = "6";
        break;
      case SEVEN:
        rank = "7";
        break;
      case EIGHT:
        rank = "8";
        break;
      case NINE:
        rank = "9";
        break;
      case TEN:
        rank = "10";
        break;
      case JACK:
        rank = "Jack";
        break;
      case QUEEN:
        rank = "Queen";
        break;
      case KING:
        rank = "King";
        break;
    }
    cardValue += rank + " of " + suit;
    return cardValue;
  }

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=119257&siteId=1
Recomendado
Clasificación