Я все еще немного зелен, когда дело доходит до Java, и надеялся получить какой-нибудь вклад / совет. Первый постер, долгое время скрытный. Я прошу прощения, если пост не соответствует стандарту и с радостью изменится под костюм.
Мне было поручено реализовать ADT для колоды из 52 карт. У меня есть четыре файла:
Stack.java
(интерфейс) Deck.java
(который реализует стек) Card.java
(простой объектный класс сконструкторы, метод toString и методы get & set) CardForce.java
(клиентское приложение, в котором экземпляр Deck создается и итеративно заполняется ссылками на объекты Card)
Мне нужна программачтобы отобразить все карты в колоде, что я сделал в классе Deck следующим образом:
public void show() {
Node current = topNode;
while (current != null) {
System.out.println(current.getData());
current = current.getNext();
}
}
Этот метод вызывается в клиентском приложении CardForce просто как deck.show()
- колода является названиемпеременная типа Deck как таковая:
public static void testCardForceOperations() {
Stack<Card> deck = new Deck<Card>();
System.out.println("Adding 3♤, 4♡, 5♢, 6♧, 7♤, 8♡, 9♢, 10♧ to deck:");
Card card;
card = new Card(Card.Suit.SPADES, Card.Value.THREE);
deck.push(card);
card = new Card(Card.Suit.HEARTS, Card.Value.FOUR);
deck.push(card);
card = new Card(Card.Suit.DIAMONDS, Card.Value.FIVE);
deck.push(card);
card = new Card(Card.Suit.CLUBS, Card.Value.SIX);
deck.push(card);
card = new Card(Card.Suit.SPADES, Card.Value.SEVEN);
deck.push(card);
card = new Card(Card.Suit.HEARTS, Card.Value.EIGHT);
deck.push(card);
card = new Card(Card.Suit.DIAMONDS, Card.Value.NINE);
deck.push(card);
card = new Card(Card.Suit.CLUBS, Card.Value.TEN);
deck.push(card);
deck.show();
}
Приведенный выше код просто для целей тестирования - для заполнения связанного списка ADT всеми 52 карточками, которые я использую для цикла for для создания объектов Card.
Вывод, который я получаю, - это все ссылки на объекты Card, а не сами карты (например, Card@677327b6 Card@14ae5a5 Card@7f31245a
и т. Д.).
Я понимаю, почему это происходит - в связанном списке Deck не хранятся данные о людях. читаемая информация - это историяЯ ссылался на объекты типа Card - но столкнулся с тем, как использовать вывод для печати данных, читаемых человеком.
Мне было интересно, возможно ли было бы выполнить итерации по элементам, хранящимся вADT Deck связанный список, возвращая их 1 на 1 клиентскому приложению, затем вызывая .toString()
для них?
У меня также есть подозрение, что моя реализация класса Card неверна - что я, возможно, должен бытьзаполнение связанного списка ADT в классе Deck, а не в клиентском приложении.
Я собираюсь продолжить экспериментировать методом проб и ошибок, но буду очень признателен за понимание этой проблемы!
Спасибо, Ниам