我在做作业时遇到了困难,而且我很难理解下一步该做什么。所以我的指示如下:
创建一个名为
Card
的新类。来自超类的构造函数复选框将在代码中创建构造函数存根。在名为
Suit
的新源文件中创建枚举类型,其值为NONE
,CLUBS
,HEARTS
,SPADES
,{{ 1}}。在与
DIAMONDS
类相同的包中的新源文件中创建枚举类型,名为Card
,其值为Rank
,JOKER
,{ {1}},TWO
,THREE
,FOUR
,FIVE
,SIX
,SEVEN
,EIGHT
,{{1 }},NINE
,TEN
,JACK
。在课程
QUEEN
中,
A)创建一个名为KING
类ACE
的类属性(字段) B)创建一个名为Card
类rank
的类属性(字段) C)为这些字段创建getter和setter。将setter设为私有,因为我们只希望构造函数设置卡Rank
和suit
(我们不希望程序员或用户设置多个Suit
Suit
例如)。创建一个接受
Rank
和ACE
的构造函数,并使用这些值来设置属性。在默认构造函数中,初始化
CLUBS
和Suit
属性。使用此构造函数调用上一步中创建的构造函数,并使用您选择的值初始化rank和suit(例如:Rank
,suit
)。在类的main方法中,构造一个默认的
rank
来演示默认的构造函数初始化。还使用
Rank.ACE
和Suit.CLUBS
构造函数构建一些额外的卡片。使用局部变量来保存对象。使用枚举类型中的
Card
方法,打印每个Suit
创建的Rank
和toString()
。创建一个
Suit
类,其中包含一个包含五十四张卡(包含)的数组的字段。在
Rank
类上创建一个构造函数,使用标准套牌和两个jokers初始化卡片组,使用Card
循环遍历Deck
和{{ 1}}使用适当的Deck
构造函数设置数组成员。请记住,两个Jokers仅作为for
套装存在,只有Jokers使用Suit
套装。有许多可能的解决方案只能创建两个笑话者。我使用了一个迭代器,将它们从循环中取出并在开始时单独添加它们。使用Rank
语句排除Card
循环中的笑话,并在之前或之后添加。在
NONE
类中创建NONE
方法,使用另一个if
循环通过调用{{1}打印数组中的所有for each
每张卡上的方法。此方法通过仅调用toString()
对象上的Deck
来“询问”for
打印其排名和适合度。在此方法中,任何地方都不应引用Card
或toString()
。让Card
'toString()
方法完成工作(委托)。- 醇>
在创建
Card
的{{1}}类中创建Rank
方法。然后使用Suit
打印卡座。这将调用Card
的{{1}}方法,该方法会在每个toString()
上调用main
,打印整个套牌。
Deck
答案 0 :(得分:0)
构造函数用于初始化对象的实例。 Setter用于设置变量的值,getter返回此值。看看下面的例子,
public class Test {
//private members of the instance
private String strVariable;
private int intVariable;
//constructor
//constructor sets the values of strVariable and intVariable when a Test object is intialized
public Test(String strVariable, String intVariable) {
this.strVariable = strVariable;
this.intVariable = intVariable;
}
//setter method for setStrVariable
//this will overwrite the value of setStrVariable that was assinged when the object was intilized
public void setStrVariable(String strVariable) {
this.strVariable = strVariable;
}
//getter for the setStrVariable
//this will return the value of setStrVariable
public String getStrVariable() {
return this.strVariable;
}
}