I'm kind of stuck while doing my homework and I'm having a hard time to understand what to do next. So my instructions are as follows:
Create a new class called
Card
. The Constructors from superclass check box will create a constructor stub in the code.Create an Enumerated Type in a new source file called
Suit
with the valuesNONE
,CLUBS
,HEARTS
,SPADES
,DIAMONDS
.Create an Enumerated Type in a new source file in the same package as the
Card
class, calledRank
with the valuesJOKER
,TWO
,THREE
,FOUR
,FIVE
,SIX
,SEVEN
,EIGHT
,NINE
,TEN
,JACK
,QUEEN
,KING
,ACE
.In the class
Card
,
A) Create a class attribute (field) calledrank
of typeRank
.
B) Create a class attribute (field) calledsuit
of typeSuit
.
C) Create getters and setters for these fields. Make the setters private, since we only want the constructor to set the cardSuit
andRank
(we would not want a programmer or user to set more than oneACE
ofCLUBS
for instance).Create a constructor that accepts a
Suit
and aRank
and use those values to set the attributes.In the default constructor, initialize the
suit
andrank
attributes. Use the this constructor to call the constructor created in the previous step and initialize the rank and suit with a value of your choice (for example:Rank.ACE
,Suit.CLUBS
).In the main method of the class, construct a default
Card
to demonstrate the default constructor initialization.Also construct a few additional cards using the
Suit
andRank
constructor. Use local variables to hold the objects.Using the
toString()
method from Enumerated Types, print theSuit
andRank
of eachCard
created.Create a
Deck
class that contains a field that is an array of fifty four cards (Containment).Create a constructor on the
Deck
class that initializes the array of cards with the standard deck and two jokers, usingfor
loops that iterate over theSuit
andRank
values and set the array members with the appropriateCard
constructor. Remember that the two Jokers only exist asNONE
suits and only the Jokers use theNONE
suit. There are many possible solutions for creating only two jokers. I used an iterator, left them out of the loop and added them in the beginning, individually. Use anif
statement to exclude the jokers within afor each
loop and add them before or after.Create a
toString()
method in theDeck
class, using anotherfor
loop to print all theCard
s in the array by calling thetoString()
method on each card. This method “asks” theCard
to print its rank and suit by only callingtoString()
on theCard
object. There should be no reference toRank
orSuit
anywhere in this method. LetCard
'stoString()
method do the work (Delegation).Create a
main
method in theDeck
class that creates aDeck
. Then print the deck usingSystem.out.println()
. This will callDeck
'stoString()
method, which will calltoString()
on eachCard
, printing the entire deck.
public class Card {
//Default Constructor
Card (){
}
//Create a class attribute (field) called rank of type Rank.
Rank rank;
//Create a class attribute (field) called rank of type Suit
Suit suit;
//Create an Enumerated Type in a new source file called Suit
public enum Suit{
NONE, CLUBS, HEARTS, SPADES, DIAMONDS
}
//Create an Enumerated Type in a new source file called Rank
public enum Rank{
JOKER, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK,QUEEN,KING, ACE
}
//Getters & Setters for Rank/Suit
//Make the setters private, since we only want the constructor to set the card Suit and Rank
public Rank getRank() {
return rank;
}
private void setRank(Rank rank) {
this.rank = rank;
}
public Suit getSuit() {
return suit;
}
private void setSuit(Suit suit) {
this.suit = suit;
}
//Create a constructor that accepts a Suit and a Rank and use those values to set the attributes.
Card ( Rank Rank, Suit Suit){
suit = Suit;
rank = Rank;
}
public static void main(String[] args) {
}
}
Constructor is used to initialised a instance of a object. Setters are used to set the values of the variables and getters return this. Have a look at the example below,
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;
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.