java - java - 如何调用带有参数的方法到java中的toString方法?
问题描述
我正在编写代码来模拟一副纸牌。我有一种方法可以获取一个 int 并从对应于西装的数组中提取西装,以及另一种方法来获取卡片的价值。我无法在 toString 方法的正确索引处调用这些方法,该方法将获取用户选择的参数并打印出类似:Ace of Spades.The class name is Card。这是我的代码:
public void setSuit(int num){
String[] suits = {"clubs", "hearts", "diamonds", "spades"};
String suit = Integer.toString(num);
suit = suits[num];
}
public void setValue(int num){
String[] value = {null, "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "King", "Queen"};
String v = Integer.toString(num);
v = value[num];
}
public String toString(){
String s = Card.setValue() + " of " + Card.setSuit();
}
解决方案
你的问题和目标让我感到困惑/模糊,但我认为这就是你想要做的?如果不是,那么您需要调整问题并使其更清楚。您应该有一个 Card 构造函数,将数字传递给 Value 和 Suit,而不是使用 Card.setValue()/setSuit() 静态调用方法。
public class Card {
public Card(int value, int suit) {
String theValue = setValue(value);
String theSuit = setSuit(suit);
if (theValue != null && theSuit != null)
toString(theValue, theSuit);
else
System.out.println("Invalid Input!");
}
private String setSuit(int num) {
String[] suits = {"clubs", "hearts", "diamonds", "spades"};
if (num >= 0 && num < suits.length())
return suits[num];
else
return null;
}
private String setValue(int num) {
String[] value = {null, "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack",
"King", "Queen"};
if (num > 0 && num < value.length())
return value[num];
else
return null;
}
private String toString(String value, String suit) {
String s = value + " of " + suit;
System.out.println(s);
}
}
您可以通过以下方式调用它:
new Card(4, 2); //Prints 4 of diamonds
推荐阅读
- c# - 如何在没有数据库连接的情况下使用 SQL Server 类(例如 SqlCommand)来防止 SQL 注入?
- html - 在 Google API 脚本的 HTML 服务中插入 Google Drive Link 时拒绝连接错误
- android - Firebase 云消息传递不断使我的应用程序崩溃
- html - 如何使文本居中但使它们彼此对齐
- go - 如何检查时间是否包含毫秒
- jquery - 如何通过以下方式创建 JSON 结构
- java - 为什么只有特定情况才需要在方法签名中抛出 IOException?
- c# - 所有平台是否有一种语法可以使用存储在 uno 跨平台库项目中的 .resw 文件中的本地化资源
- python - 获取:尝试读取文本文件时出现索引超出列表错误
- python - Python 3.8 - list.append('█') 但不适用于空格字符?