gpt4 book ai didi

java - 为什么我收到 SPADE 无法解析为类型错误?

转载 作者:行者123 更新时间:2023-11-30 03:07:17 26 4
gpt4 key购买 nike

我最近决定开始为我的卡套装使用枚举,但无论我如何输入代码,似乎都无法解决此错误。

编辑:

/**
*
* A basic constructor class that build the card object.
* The card object will contain value for both the Suit and
* card's Value.
*
*
*
*/
public class Card {

public Enum SUIT{SPADE, CLUB, DIAMOND, HEART};

// This will identify the card suit.
public Enum suit;
//This will hold the card value.
//Jack = 11 ... Ace = 14
public int value;


public Card(Enum suit, int value){

this.suit = suit;
this.value = value;
}
}

我在网站上查找了各种答案,并浏览了 Orcacle 上的官方 Java 文档。有人可以帮我解决这个问题吗?

更新:

/**

* * 构建卡片对象的基本构造函数类。 * 卡对象将包含花色和花色的值 * 卡的值(value)。 * * * */公开课卡{

public enum Suit{SPADE, CLUB, DIAMOND, HEART};

// This will identify the card suit.
private final Suit suit;
//This will hold the card value.
//Jack = 11 ... Ace = 14
private final int value;


public Card(Suit suit, int value){

this.suit = suit;
this.value = value;
}

}

这里是错误的屏幕截图: A screenshot of the error

最佳答案

Enum 是一个类名(它是 base class of all enum s )。您需要将 Suit 类声明为:

public enum Suit{SPADE, CLUB, /* etc */}

然后,为了接受 Suit 的实例作为构造函数的参数,请将参数类型设置为 Suit 以及相应的字段:

public Suit suit;
public int value;

public Card(Suit suit, int value) {
this.suit = suit;
this.value = value;
}
<小时/>

其他一些观察结果:

  • suitvalue 字段设为私有(private),并添加访问器方法( getSuit()getValue() )。目前,没有什么可以阻止类(class)外的人更改它们。
  • 此外,请考虑将它们设置为 final ,除非有充分的理由希望能够稍后在此类中更改它们,或者您想为它们公开 setter (我无法想象这个原因是什么)
  • 检查value的范围是否在2到14之间;或者,为卡值创建一个枚举。这有点一次性输入,但它会产生更具描述性的代码(例如,您可以使用 Value.ACE,而不是想知道是否应该使用 1 还是 14 来表示该卡)

关于java - 为什么我收到 SPADE 无法解析为类型错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34432730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com