Java 上课有什么问题?

Java 上课有什么问题?,java,Java,我是Java代码编程的初学者。我真的很难理解这门课是怎么错的,比如当我试图扩展这门课的时候公共最终类SeatType扩展枚举 这是我的全班同学: package assignment; public final class SeatType extends Enum { public static final SeatType AISLE; public static final SeatType WINDOW; public static final SeatTy

我是Java代码编程的初学者。我真的很难理解这门课是怎么错的,比如当我试图扩展这门课的时候<代码>公共最终类SeatType扩展枚举

这是我的全班同学:

package assignment;


public final class SeatType extends Enum
{

    public static final SeatType AISLE;
    public static final SeatType WINDOW;
    public static final SeatType MIDDLE;
    private static final SeatType $VALUES[];

    public static SeatType[] values()
    {
        return (SeatType[])$VALUES.clone();
    }

    public static SeatType valueOf(String name)
    {
        return (SeatType)Enum.valueOf(assignment/SeatType, name);
    }

    private SeatType(String s, int i)
    {
        super(s, i);
    }

    static 
    {
        AISLE = new SeatType("AISLE", 0);
        WINDOW = new SeatType("WINDOW", 1);
        MIDDLE = new SeatType("MIDDLE", 2);
        $VALUES = (new SeatType[] {
            AISLE, WINDOW, MIDDLE
        });
    }
}
编辑:

这些都是错误

无法将SeatType解析为变量。分配不能被删除 解析为一个变量。类型SeatType不能是Enum的子类 明确地构造函数对象(字符串,int)未定义-


非常感谢您的帮助:)

您为什么要扩展
Enum
?在Java中,您不能这样做。如果要创建枚举类,则应使用定义创建一个类

public enum SeatType {
    // your enum code
}

您的类是错误的,因为您正在扩展
Enum

您不能从
Enum
扩展。您可以这样声明一个
Enum
类:

public enum MyEnum {
    AISLE,
    WINDOW,
    MIDDLE;
}
MyEnum.valueOf("AISLE");
MyEnum.AISLE;
这将创建您的
Enum
。实际使用情况如下所示:

public enum MyEnum {
    AISLE,
    WINDOW,
    MIDDLE;
}
MyEnum.valueOf("AISLE");
MyEnum.AISLE;

您根本不需要扩展
Enum
。您只需使用
enum
关键字来声明枚举:

enum SeatType {
    ...
}
您不需要有
方法。它们继承自
Enum

从外观上看,您的枚举似乎有两个字段-
i
s
。您应该将它们声明为字段:

int i;
String s;
然后,编写一个构造函数,该构造函数接受一个int和一个字符串,该字符串将参数分配给字段:

SeatType(String s, int i) {
    this.i = i;
    this.s = s;
}
然后,可以声明枚举值:

AISLE("AISLE", 0),
MIDDLE("MIDDLE", 1),
WINDOW("WINDOW", 2)
;
因此,您的整个枚举如下所示:

enum SeatType {
    AISLE("AISLE", 0),
    MIDDLE("MIDDLE", 1),
    WINDOW("WINDOW", 2)
    ;
    int i;
    String s;

    SeatType(String s, int i) {
        this.i = i;
        this.s = s;
    }
}

Java
编译器不允许您
扩展
ENUM
类。看看

另外,请阅读以了解如何使用
enum

在这种情况下,您可以创建一个
enum
类似

public enum SeatType 
{
   WINDOW, AISLE, MIDDLE
}

在Java中,它不允许显式扩展
Enum

您可以创建一个
enum
,如下所示:

    public enum Season {
      WINTER, SPRING, SUMMER, FALL; 
    }

根据Java语言规范,每个
enum
都是隐式
final
,是
enum
的子类。因此,一个
enum
已经从另一个类继承,使其成为另一个类的子类将打破Java的单一继承范式。然而,枚举可以实现一个
接口

,到底哪里错了?你的编译器怎么说?这些是错误。无法将SeatType解析为变量。无法将赋值解析为变量。类型SeatType不能显式为Enum子类。构造函数对象(字符串,int)未定义