我的牌组创建了一个Card对象数组,并成功打印出它已更新。我想制作第三个类来实现该程序:创建一个deck对象,向玩家询问他们想要多少张牌,然后随机传递出来。在底部的PlayingTable类中,我尝试创建一个甲板的实例并扫描它以使甲板中的所有信息都存在。它说我不能扫描一个甲板对象,因为它不是一个阵列,我不太确定从这里去哪里....
这是我的两个类的代码:
公共类卡
{
//Instance properties//
private String cardNum;
private String cardSuit;
//Instance Methods //
//Constructor, create an instance of card
public Card( String num , String suit )
{
System.out.println( "Creating a card.");
cardNum = num ;
cardSuit = suit;
}
public void display()
{
System.out.println("This card is a" + " "+ cardNum + cardSuit);
}
}
公共课甲板
{ //实例属性//
//Number of cards in a deck
public static int numCards = 52;
private static Card [ ] deck= new Card [numCards];
private static String [ ] cardValue = { "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King" } ;
private static String [ ] cardSuit = { " of Hearts" , " of Spades", " of Clubs", " of Diamonds" };
//Instance methods and Constructor//
/*public void Deck ( )
{
}*/
public static void fillDeck ( )
{
int eachCard = 0 ;
for ( int i = 0; i < cardValue.length ; i++ )
{
for ( int j = 0 ; j < cardSuit.length ; j++ )
{
deck[eachCard++] = new Card ( cardValue [i] , cardSuit [j] );
}
}
}
public static void getDeck ()
{
for ( int i = 0; i < numCards ; i++ )
{
fillDeck();
//System.out.println( " This is card" + i + " " + " of the deck" );
deck[i].display();
}
}
public static void main (String [] args )
{
getDeck();
}
}
公共课PlayTable { static Deck dealersDeck = new Deck();
public static void main ( String [] args )
{
for ( int i = 0 ; i < 52; i++)
{
System.out.println ( dealersDeck[i].getDeck());
}
}
}
答案 0 :(得分:0)
问:我如何在一个班级中显示信息...... [来自] ...另一个班级?
答:在“其他类”中提供公共“getter”方法(或者,如果您正在编程#,“属性”)。
这是一个关于C#属性的好教程:
关于Java“getter / setter”方法的讨论:
最后,这里是关于OO“封装”的讨论,这个问题实际上超越了“属性”,“getter / setter方法”...... AND ......“在一个类中显示信息另一个“:
答案 1 :(得分:0)
您创建一个数组,该数组将持有初始化为numCards -1
大小的Card对象private static Card [ ] deck = new Card [numCards-1];
但你永远不会在其中放置任何物品,所以当你打电话时
deck[i].display();
你在不存在的东西上调用显示方法,你有一个方法可以填充数组(makeDeck()),但你永远不会调用它。
在实体类文件中包含main()可能很方便,但也可以掩盖代码中的错误。我建议你在一个单独的课程中进行测试。