如何使用另一个类的方法Get来打印这个数组?



我试图打印我的数组甲板,当我使用这个printf

给出如下信息:"jamilzin.cassino.Deck@28a418fc">

然而,当我试图在Deck类中创建一个方法菲律宾时,

我的printf返回消息如下:"jamilzin.cassino.Card@63a418fc">

如何使用正确的类型转换来使用getValuegetSuit打印我的数组?

我的想法:创建一个对象Deck(),因为Deck是一个数组的卡,我想cast的东西像一个MyDeck(Card. getvalue),但idk如何做到这一点

package jamilzin.cassino;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;

Deck class: 

public class Deck {

private Card[] deck;
private String[] suits = {"Ouro", "Paus", "Espada", "Copas"};
private Random gerador = new Random();

public Deck(){
deck = new Card[52];
int k = 0;
for(int j = 0; j< suits.length;j++){
for(int i = 0;i< 13;i++){
deck[k] = new Card((i+1),suits[j]); 
k++;
}
}
}}
--------------------------------
Card class:
package jamilzin.cassino;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class Card {

private String suit;
private int value;

Card(int value, String suit){
this.value = 0;
this.suit = " ";

}
public String getSuit() {
return suit;
}
public void setSuit(String suit) {
this.suit = suit;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
----------------------------------
Test class:
public class Cassino {

public static void main(String[] args) {

Deck deckMaster = new Deck();
System.out.println(""+ deckMaster);

}}

您的解决方案很接近。当您调用System.out.println("" + deckMaster)时,Deck没有定义它应该如何打印自己。您可以通过向Deck类添加这样的内容来修复此问题:

@Override
public String toString() {
return Arrays.toString(deck);
}

从那里,它将打印每个Card,但它们也不知道如何打印自己,所以您可以尝试将这样的东西添加到Card类:

@Override
public String toString() {
return getValue() + getSuit();
}

另外,Card的构造函数忽略了所有输入参数,这可能不是您想要的。所以修改这个:

Card(int value, String suit) {
this.value = 0;
this.suit = " ";
}

:

Card(int value, String suit) {
this.value = value;
this.suit = suit;
}

最新更新