Java 如何为循环中的对象提供新名称?
所以我有一个叫做PlayingCard的类,它创建了一个包含int-rank和int-suit的对象(用来模拟一张扑克牌)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
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);
}