[英]How can I use a method Get, of another class to print this array?
当我使用这个printf时,我正在尝试打印我的阵列卡座,
给出如下消息: “jamilzin.cassino.Deck@28a418fc”
然而,当我试图在我的 Deck Class 中创建一个方法 philippines 时,
我的 printf 返回消息,例如: “jamilzin.cassino.Card@63a418fc”
如何使用正确的转换来使用我的getValue和getSuit来打印我的数组?
我的想法:创建一个对象 Deck(),因为 Deck 是一个卡片数组,我想投射类似MyDeck(Card.getValue)的东西,但不知道该怎么做
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.