2015-02-20 4 views
0

Я печатаю элемент из массива. Массив содержит (класс) Карту, и каждая карта состоит из строковой грани (в данном случае K) и символа (в данном случае - лопаты). Название проекта - pokergames, класс - Card. Ниже то, что распечатав:(Java) Элемент массива распечатка [email protected]

[email protected]

Подсказка: Я попытался преобразования карты с помощью метода ToString() и выход их так же, как и без него.

Он должен выглядеть следующим образом: ♠ K

Вот кодирование я использовал:

//create the 2 private attributes 
private String face; 
private char suit; 

//constructor for card 
public Card(String face, char suit) 
{ 
    this.face = face; 
    this.suit = suit; 
} 

//create the public function toString to add the face and suit 
public String tostring() 
{ 
    return face + suit; 
} 

ответ

1

Вашего toString метод подпись является неправильной. Он должен быть toString, а не tostring.

Чтобы избежать логической ошибки при переопределении метода, вы должны использовать аннотацию @Override, чтобы убедиться, что вы переопределяете правильный метод. Таким образом, ваш toString в идеале должен быть таким:

@Override 
public String toString() { 
    return face + suit; 
} 
+1

+1. Этот ответ правильный. В качестве примечания, по умолчанию для toString() выводится '[email protected] (hashCode)', поэтому вы получаете этот вывод. – TheLostMind

+1

@TheLostMind Спасибо за ценную информацию, нравится! –

+0

К сожалению ............ – TheLostMind

Смежные вопросы