Java 用类的名称声明对象

Java 用类的名称声明对象,java,arrays,arraylist,Java,Arrays,Arraylist,卡是一门课,你说得对。这行代码返回一个卡片对象: import java.util.Random; public class Deck { int Cnumb; int Cname; String cardName[] = new String[5]; int cardNum[] = new int[14]; public void init(){ cardName[0] = ""; cardName[1] = "H

卡是一门课,你说得对。这行代码返回一个卡片对象:

import java.util.Random;

public class Deck {

    int Cnumb;
    int Cname;
    String cardName[] = new String[5];
    int cardNum[] = new int[14];


    public void init(){
        cardName[0] = "";
        cardName[1] = "Heart's";
        cardName[2] = "Diamond's";
        cardName[3] = "Spade's";
        cardName[4] = "Club's";

        cardNum[0] = 0;
        cardNum[1] = 1;
        cardNum[2] =2;
        cardNum[3] =3;
        cardNum[4] =4;
        cardNum[5] =5;  
        cardNum[6] =6;
        cardNum[7] =7;
        cardNum[8] =8;
        cardNum[9] =9;
        cardNum[10] =10;
        cardNum[11] =11;
        cardNum[12] =12;
        cardNum[13] =13;

    }

    public void shuffle(){

        Random rnd = new Random();


        // Random Card
        Cnumb = rnd.nextInt(Integer.MAX_VALUE) % 13;
        Cnumb = Cnumb + 1;

        Cname = rnd.nextInt(Integer.MAX_VALUE) % 4;
        Cname = Cname + 1;

    }

      public Card deal(){
        String Suit =  cardName[Cname];
        int Rank = cardNum[Cnumb];
        //return ; // here is the problem       
    }

}
Deck是另一个包含所有卡的类,它包含一个名为deal的方法,该方法返回一张卡

编辑:您有两个问题,您的方法deal被写入以返回一个Card对象,但您已经将Card声明为字符串数组。这将导致一个错误。

类卡片似乎是由名为deal的Deck类中的方法返回的。我们真的看不出你到底想要什么,但这是一个基本的解释


如果您想了解更多有关面向对象编程工作原理的信息,请参阅Brian Will的精彩教程:。

您让我们猜测看不见的代码在做什么。大概您已经有了剩余的代码。读一读,看看它在做什么。那么有错误吗?你真的应该在问题中这样说。也许这有助于我混淆返回类型,因为它一直显示错误。哦,它一直显示错误?这是什么错误,它应该让你知道返回类型是什么。它说string不能转换为cardAh,这只是deck.deal的返回类型是string,而不是Card。检查Deck类中的deal方法,看看它在哪里返回这个值。然后您应该将其更改为返回一个卡数组而不是stringsy,先生,但是我对deck类中的返回类型有一个问题。。
import java.util.Random;

public class Deck {

    int Cnumb;
    int Cname;
    String cardName[] = new String[5];
    int cardNum[] = new int[14];


    public void init(){
        cardName[0] = "";
        cardName[1] = "Heart's";
        cardName[2] = "Diamond's";
        cardName[3] = "Spade's";
        cardName[4] = "Club's";

        cardNum[0] = 0;
        cardNum[1] = 1;
        cardNum[2] =2;
        cardNum[3] =3;
        cardNum[4] =4;
        cardNum[5] =5;  
        cardNum[6] =6;
        cardNum[7] =7;
        cardNum[8] =8;
        cardNum[9] =9;
        cardNum[10] =10;
        cardNum[11] =11;
        cardNum[12] =12;
        cardNum[13] =13;

    }

    public void shuffle(){

        Random rnd = new Random();


        // Random Card
        Cnumb = rnd.nextInt(Integer.MAX_VALUE) % 13;
        Cnumb = Cnumb + 1;

        Cname = rnd.nextInt(Integer.MAX_VALUE) % 4;
        Cname = Cname + 1;

    }

      public Card deal(){
        String Suit =  cardName[Cname];
        int Rank = cardNum[Cnumb];
        //return ; // here is the problem       
    }

}
deck.deal();