繁体   English   中英

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

[英]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”

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

我的想法:创建一个对象 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM