【问题标题】:How to make toString method within object?如何在对象中创建 toString 方法?
【发布时间】:2016-02-10 03:04:24
【问题描述】:
import java.util.ArrayList;

public class Card {

  int number;
  String suit;

  public Card(int number, String suit) {
    this.number = number;
    this.suit = suit;

      @Override
        public String toString() {

          String[] high = {
            "Jack",
            "Queen",
            "King"
          };

            String type;

            if (number < 10) {
              return String.valueOf(this.number) + " of " + this.suit;
            }
            else {
              return high[this.number-10] + " of " + this.suit;
            }

            //return suit + " of " + type;

          //return String.valueOf(number) + " of " + suit;
        }
  }

  public static void main(String[] args) {

    String[] suit = {
      "Clubs",
      "Diamonds",
      "Spades",
      "Hearts"
    };

    // String[] high = {
    //   "Jack",
    //   "Queen",
    //   "King"
    // };

    ArrayList<Card> deckOfCards = new ArrayList<Card>(52);

    for (int j = 0; j < 4; j++) {
      for (int i = 0; i < 13; i++) {

        deckOfCards.add(new Card (i+1, suit[j]));
            currentCard.toString();
      }
    }



    // @Override
    // public String toString(Card card) {
    //
    //   this.suit = suit;
    //   this.number = number;
    //
    //   String type;
    //
    //   if (number < 10) {
    //     type = Integer.toString(number);
    //   }
    //   else {
    //     type = high[i-number];
    //   }
    //
    //   return suit + " of " + type;
    //   }

    // currentCard.toString();

  }
}

除了 Card 类中的 toString 方法外,一切都有效。不是 100% 确定问题是什么,错误消息是

Card.java:13: 错误:';'预期的 公共字符串 toString() {

感谢您的帮助

【问题讨论】:

  • 您的构造函数包含您的方法 toString。把这个方法移开,一切都会好起来的。如果对结构不清楚,请参考:docs.oracle.com/javase/tutorial/java/javaOO/classes.html
  • 如果这些答案之一对您有帮助,请接受和/或投票。
  • 请使用像eclipse这样的基本IDE并利用ctrl+1ctrl+space函数,它们可以立即解决您的大部分问题。

标签: java tostring


【解决方案1】:

您的 toString() 方法在您的 Card(int number, String suite) 构造函数中。把它移出来。

【讨论】:

    【解决方案2】:

    String method 位于 Cards 类的构造函数中,将其移到外面以便您可以使用它,这样您就可以获得有效的 Card constr

    【讨论】:

      【解决方案3】:

      将 toString 放在构造函数之外。

       public Card(int number, String suit) {
          this.number = number;
          this.suit = suit;
      }
       @Override
       public String toString() {
      
                String[] high = {
                  "Jack",
                  "Queen",
                  "King"
                };
      
                  String type;
      
                  if (number < 10) {
                    return String.valueOf(this.number) + " of " + this.suit;
                  }
                  else {
                    return high[this.number-10] + " of " + this.suit;
                  }
          }
      

      【讨论】:

        【解决方案4】:

        您的 toString() 方法在您的构造函数中;

        这里是修改后的代码

        public class Card {
        
          int number;
          String suit;
        
          public Card(int number, String suit) {
            this.number = number;
            this.suit = suit;
          }
        
        
              @Override
                public String toString() {
        
                  String[] high = {
                    "Jack",
                    "Queen",
                    "King"
                  };
        
                    String type;
        
                    if (number < 10) {
                      return String.valueOf(this.number) + " of " + this.suit;
                    }
                    else {
                      return high[this.number-10] + " of " + this.suit;
                    }
        
                    //return suit + " of " + type;
        
                  //return String.valueOf(number) + " of " + suit;
                }
        
        // your main starts from here..
        

        如果你在eclipse中,不要忘记格式化 ctrl+shift+f

        【讨论】:

          猜你喜欢
          • 2011-06-26
          • 1970-01-01
          • 2013-04-13
          • 1970-01-01
          • 2021-10-18
          • 2022-12-03
          • 1970-01-01
          • 2020-10-08
          • 1970-01-01
          相关资源
          最近更新 更多