【问题标题】:Java Object/Type is always giving me errors when I work on a different class当我处理不同的类时,Java 对象/类型总是给我错误
【发布时间】:2013-04-01 23:51:00
【问题描述】:

所以我的任务基本上是用java在电脑上创建游戏“Hearts”。

我首先创建了一个对象“卡片”:

*

公共类卡片{

    public enum Suit {
        CLUBS,
            HEARTS,
            SPADES,
            DIAMONDS
    }
    public enum Value {
        TWO,
            THREE,
            FOUR,
            FIVE,
            SIX,
            SEVEN,
            EIGHT,
            NINE,
            TEN,
            JACK,
            QUEEN,
            KING,
            ACE}


      private Suit suit;  
          private Value value;    

> 公牌(西服,价值价值){ 西装 = getSuit(); 值 = getValue(); } }

但是,每当我尝试在另一个类中使用类型 Suit 或 Value 时,都会收到错误消息“无法解析为变量”。所有 .java 文件都在同一个文件夹中,并且我的 Card 类上没有任何错误消息......那我做错了什么?为什么 java 不能识别 Value 和 Suit 类型?

PS:另一节课是老师给我们的测试课。我无法更改它,因为这是他用来给我们评分的那个。

提前致谢!

【问题讨论】:

  • 你是否在你使用的类中正确地导入了 Suit 和 Value 枚举?
  • 哪行代码导致错误?你老师的代码是你自己的吗?

标签: java class types


【解决方案1】:

您可以通过在前面添加类名来访问所有内部(静态)类以及枚举:

Card.Suit 可以解决问题。

【讨论】:

  • 我不能,因为我必须在测试文件上这样做......但是,他是使用测试文件的人而不是我。我需要找到一种方法来更改我的代码,以便他只需编写“Value”即可立即调用
  • 你不能把你的枚举放在一个单独的文件中(每个)吗?
【解决方案2】:

试试 Card::Suit。我不确定语法。

【讨论】:

  • 我不能这样做,因为它是我老师正在使用的文件。我需要修改这个类的一些东西。
【解决方案3】:

在 Card 类之外的单独文件中声明您的 Suit 和 Value 枚举:

在 Suit.java 中:

public enum Suit {
    CLUBS,
    HEARTS,
    SPADES,
    DIAMONDS
}

在 Value.java 中:

public enum Value {
    TWO,
    THREE,
    FOUR,
    ...
}

然后在 Card.java 中,你的 Card 类会像这样开始:

public class Card {

    Suit suit;
    Value value;

    public Card(Suit suit, Value value)
    { 
        this.suit = suit;
        this.value = value;
    } 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 2011-12-14
    • 1970-01-01
    相关资源
    最近更新 更多