繁体   English   中英

如何在java中调用带参数的toString方法的方法?

[英]How to call a method with a parameter to a toString method in java?

我正在编写代码来模拟一副纸牌。 我有一种方法采用 int 并从对应于套装的数组中拉出套装,另一种方法用于获取卡片的值。 我无法在正确的索引处为 toString 方法调用这些方法,该方法将采用用户选择的参数并打印出如下内容:黑桃 A。class 名称为 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM