Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为循环中的对象提供新名称?_Java_Class - Fatal编程技术网

Java 如何为循环中的对象提供新名称?

Java 如何为循环中的对象提供新名称?,java,class,Java,Class,所以我有一个叫做PlayingCard的类,它创建了一个包含int-rank和int-suit的对象(用来模拟一张扑克牌) public class PlayingCard { 私有整数秩; 私人诉讼; 公共播放卡(int rank1,int suit1)//播放卡构造函数 { 秩=rank1; suit=suit1; } public int getRank()//获取卡片等级值的方法 { 如果(rank>0&&rank 0&&suit您每次都试图将一张PlayingCard分配给cardDe

所以我有一个叫做PlayingCard的类,它创建了一个包含int-rank和int-suit的对象(用来模拟一张扑克牌)

public class PlayingCard
{
私有整数秩;
私人诉讼;
公共播放卡(int rank1,int suit1)//播放卡构造函数
{
秩=rank1;
suit=suit1;
}
public int getRank()//获取卡片等级值的方法
{

如果(rank>0&&rank 0&&suit您每次都试图将一张
PlayingCard
分配给
cardDeck
数组中的第二个元素(索引1)。此外,
cardDeck
数组在while循环的每次迭代的底部都会被立即丢弃。它的作用域仅限于循环内部

改变这个

while(rank < 15)
    {
        PlayingCard cardDeck[1] = new PlayingCard(rank, suit);
    }

可能还有其他问题,但这是一个很好的开始。

一副牌(为了方便):
假设每件衣服14张牌(我不知道确切的等级数,我假设14张)

给定等级和套牌,您可以通过
cardDeck[(等级1)*4+(套牌1)]

playingcardcarddeck=新的PlayingCard[56];
int等级,套装,i=0;

对于(rank=1;rank您必须使用类吗?最好将其作为一组3个枚举来执行。您检查数字并返回套装字符串的get方法存在各种错误。如果suite是一个枚举,则可以按名称和数字(序号)引用它

两个嵌套循环是建筑部分的最简单解决方案

然而,如果你想要一副命名的卡片,比如你可以说‘如果卡片==QueenOfSpades,你就必须做一些更有创意的事情,例如嵌套循环,你从等级和西装中取名字,并将它们与中间的of连接起来。这就是这个问题的有趣之处:显然你不能这样做以编程方式命名枚举

这意味着您可以使您的甲板枚举具有52个命名元素,例如,DeuceOfSpades、DeuceOfHearts-on-up-to-AceOfSpades等


另一种选择是对等级和适合度进行枚举,然后让类组生成卡片,并将它们保存在内部,但有一种方法可以通过名称获取卡片,例如deck.getAceOfHearts()。然后它也可以通过某种迭代器接口随机提供卡片,例如getNextCard().

我在这里讨论的唯一一个对象/数组分配问题。在这个更大的问题得到解决之前,更新秩是没有意义的。是的。是的。我会马上解决它。数组索引没有名称,也不能有名称。数组索引是用数字访问的。
while(rank < 15)
        {
            PlayingCard cardDeck[1] = new PlayingCard(rank, suit);
        }
while(rank < 15)
    {
        PlayingCard cardDeck[1] = new PlayingCard(rank, suit);
    }
PlayingCard[] cardDeck = new PlayingCard[52];

int i = 0;
while(rank < 15)
    {
        cardDeck[i++] = new PlayingCard(rank, suit);
    }
cardDeck[i++] = new PlayingCard(rank, suit);
cardDeck[i++] = new PlayingCard(rank++, suit);
PlayingCard cardDeck = new PlayingCard[56];

int rank, suit, i = 0;

for(rank=1; rank<=14; rank++)
{

  for(suit=1; suit<=4; suit++)

  cardDeck[i++] = new PlayingCard(rank, suit);    


}