【发布时间】:2012-04-16 08:09:24
【问题描述】:
这是 Java 艺术与科学第 6 章中的编程练习。
实现一个名为 Card 的新类,其中包含以下条目:
• 四种花色(俱乐部、钻石、红心、黑桃)的命名常量 以及传统上用文字表示的四个等级(ACE, 杰克、王后、国王)。秩常数的值应该是 1, 11, 分别是 12 和 13。
• 一个构造函数,它接受一个等级和一个花色并返回一张卡片 这些值。
• 名为 getRank 和 getSuit 的 Getter 方法用于检索排名和花色 卡片的组成部分。
• 返回完整的 toString 方法的实现 卡片名称,如练习 1 所示。请记住,您可以使用 + 运算符将字符串的不同部分连接在一起,如 如图中 Rational 类的 toString 实现所示 6-9.
我的代码:
/*
* File: Card.java
*
*/
public class Card {
/* Named Constants for ranks*/
public static final int ACE = 1;
public static final int JACK = 11;
public static final int QUEEN = 12;
public static final int KING = 13;
/* Named Constants for suits*/
public static final int CLUBS = 1;
public static final int DIAMONDS = 2;
public static final int HEARTS = 3;
public static final int SPADES = 4;
public Card(int rank, int suit) {
cardRank = rank;
cardSuit = suit;
}
public int getRank() {
return cardRank;
}
public int getSuit() {
return cardSuit;
}
public String toString() {
return (toRankName() + " of " + toSuitName());
}
private String toRankName() {
switch (cardRank) {
case 1:
return ("Ace");
case 11:
return ("Jack");
case 12:
return ("Queen");
case 13:
return ("King");
default:
return ("" + cardRank);
}
}
private String toSuitName() {
switch (cardSuit) {
case 1:
return ("Clubs");
case 2:
return ("Diamonds");
case 3:
return ("Hearts");
case 4:
return ("Spades");
default:
return ("Invalid");
}
}
private int cardRank;
private int cardSuit;
}
我不确定的部分是“名为 getRank 和 getSuit 的 Getter 方法,用于检索卡片的等级和花色组件。”
问题是要求我返回 int 值还是 String 值(名称)?
这是我第一次实现一个类。除了缺少JavaDoc cmets,我的代码还有什么问题吗?
编辑: 非常感谢所有回复的人!
【问题讨论】:
-
你的代码看起来不错,但是这本书似乎已经过时了......
-
在
public String toString()方法前面放一个@Override:这表明您正在覆盖父类的方法(在本例中为Object),而不是创建出现的新方法只在你的课堂上
标签: java