Java 上课有什么问题?
我是Java代码编程的初学者。我真的很难理解这门课是怎么错的,比如当我试图扩展这门课的时候<代码>公共最终类SeatType扩展枚举 这是我的全班同学: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
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)未定义