首页 > 解决方案 > 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();  
      }

标签: javaarrays

解决方案


你的问题和目标让我感到困惑/模糊,但我认为这就是你想要做的?如果不是,那么您需要调整问题并使其更清楚。您应该有一个 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

推荐阅读