繁体   English   中英

如何在对象内制作toString方法?

[英]How to make toString method within object?

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()方法位于Card(int number, String suite)构造函数中。 移开。

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

将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;
            }
    }

您的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中

暂无
暂无

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

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