У меня есть класс карты, которая выглядит следующим образом:метод ToString класса
public class Card
{
//instance variables
private String faceValue; //the face value of the card
private String suit; //the suit of the card
String[] ranks = {"Ace", "2", "3", "4", "5", "6","7", "8", "9", "10", "Jack", "Queen", "King"};
String[] suits = {"Clubs", "Diamonds", "Hearts", "Spades"};
/**
* Constructor
*/
public Card()
{
for (int i = 0; i < 13; i++)
{
for (int j = 0; j < 4; j++)
{
faceValue = ranks[i];
suit = suits[j];
}
}
}
//getters
/**
* Getter for faceValue.
*/
public String getFaceValue()
{
return faceValue;
}
/**
* Getter for suit.
*/
public String getSuit()
{
return suit;
}
//end of getters
//methods
/**
* This method returns a String representation of a Card object.
*
* @param none
* @return String
*/
public String toString()
{
return "Dealed a card: " + faceValue + " of " + suit;
}
}
И еще один класс Деки, который использует класс карты для создания массива:
public class Deck
{
//instance variables
private Card[] deck;
/**
* Constructor for objects of class Deck
*/
public Deck()
{
deck = new Card[52];
}
/**
* String representation.
*/
public String toString()
{
return "Dealed a card: " + deck.getFaceValue() + " of " + deck.getSuit();
}
}
Мой метод ToString является давая мне ошибку «не могу найти символ - метод getFaceValue()». То же самое для getSuit(). Любые идеи почему?
'deck' - это массив' Card', а не 'Card'. Массивы не имеют этих двух методов. – resueman
Массивы не имеют методов. Элементы массивов имеют методы. – bmargulies
Вы можете просто вернуть 'Arrays.toString (deck)', который даст список всех строк карты. –