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();