Java-Don';我不知道如何调用公共枚举类
我对Java有点陌生 下面是我想要实现的Java源代码 首先,我定义一个公共枚举类,如下所示:Java-Don';我不知道如何调用公共枚举类,java,Java,我对Java有点陌生 下面是我想要实现的Java源代码 首先,我定义一个公共枚举类,如下所示: public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } import java.time.*; public class EnumTest { Day day; public EnumTest(Day day) { this.day = day; } public void
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
import java.time.*;
public class EnumTest {
Day day;
public EnumTest(Day day) {
this.day = day;
}
public void tellItLikeItIs() {
switch (day) {
case MONDAY:
System.out.println("Mondays are bad.");
break;
case FRIDAY:
System.out.println("Fridays are better.");
break;
case SATURDAY: case SUNDAY:
System.out.println("Weekends are best.");
break;
default:
System.out.println("Midweek days are so-so.");
break;
}
}
public static void main(String[] args) {
EnumTest firstDay = new EnumTest(Day.MONDAY);
firstDay.tellItLikeItIs();
EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);
thirdDay.tellItLikeItIs();
EnumTest fifthDay = new EnumTest(Day.FRIDAY);
fifthDay.tellItLikeItIs();
EnumTest sixthDay = new EnumTest(Day.SATURDAY);
sixthDay.tellItLikeItIs();
EnumTest seventhDay = new EnumTest(Day.SUNDAY);
seventhDay.tellItLikeItIs();
}
}
现在我创建了一个这样的类:
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
import java.time.*;
public class EnumTest {
Day day;
public EnumTest(Day day) {
this.day = day;
}
public void tellItLikeItIs() {
switch (day) {
case MONDAY:
System.out.println("Mondays are bad.");
break;
case FRIDAY:
System.out.println("Fridays are better.");
break;
case SATURDAY: case SUNDAY:
System.out.println("Weekends are best.");
break;
default:
System.out.println("Midweek days are so-so.");
break;
}
}
public static void main(String[] args) {
EnumTest firstDay = new EnumTest(Day.MONDAY);
firstDay.tellItLikeItIs();
EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);
thirdDay.tellItLikeItIs();
EnumTest fifthDay = new EnumTest(Day.FRIDAY);
fifthDay.tellItLikeItIs();
EnumTest sixthDay = new EnumTest(Day.SATURDAY);
sixthDay.tellItLikeItIs();
EnumTest seventhDay = new EnumTest(Day.SUNDAY);
seventhDay.tellItLikeItIs();
}
}
编译EnumTest类“时,出现以下错误:
C:\java>javac EnumTest.java
EnumTest.java:4: error: class Day is public, should be declared in a file named
Day.java
public enum Day {
^
1 error
你能帮我吗?
非常感谢。
Meir您的代码看起来不错,出现错误是因为您正在同一文件下保存两个公共类(枚举也是类) 创建两个单独的文件并在其中写入enum,将其另存为
Day.java
。和另一个使用类EnumTest
的文件,并将其另存为EnumTest.java
别忘了把它们放在同一个包裹里。否则,您必须使用import packagename.Day
或
更简单的方法是从Enum中删除public
enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
现在您的代码将编译您的代码看起来很好,出现错误是因为您正在同一文件下保存两个公共类(枚举也是类) 创建两个单独的文件并在其中写入enum,将其另存为
Day.java
。和另一个使用类EnumTest
的文件,并将其另存为EnumTest.java
别忘了把它们放在同一个包裹里。否则,您必须使用import packagename.Day
或
更简单的方法是从Enum中删除public
enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
现在您的代码将编译通常所有的
公共
类/枚举/接口都在单个文件中定义(so Day.java、EnumTest.java等等)
但是您不必将类/枚举/接口设置为公共的
,除非它是从外部访问的:
enum Day { ... }
public class EnumTest {
Day day;
...
通常,所有的
public
类/enum/接口都在单个文件中定义(so Day.java、EnumTest.java等等)
但是您不必将类/枚举/接口设置为公共的
,除非它是从外部访问的:
enum Day { ... }
public class EnumTest {
Day day;
...
这两个类都在同一个文件中吗?错误消息说明了这一切:class Day是公共的,应该在名为Day.javas的文件中声明,因为RobbyCornelissen提到编译器希望在其自己的源文件中使用Day枚举(枚举在内部作为类处理)。问题不在于“调用”枚举的位置,问题就在你介绍它的那一行。顺便说一句,如果你使用IDE,它们会自动修复这类问题,它们不仅会为你编译代码,还会帮助你修复代码。我更喜欢IntelliJ。这两个类在同一个文件中吗?错误消息说明了这一切:class Day是公共的,应该在一个名为Day.javas的文件中声明。RobbyCornelissen提到编译器希望在其自己的源文件中使用Day enum(enum在内部作为类处理)。问题不在于“调用”enum的位置,问题就在你介绍它的那一行。顺便说一句,如果你使用IDE,它们会自动修复这类问题,它们不仅会为你编译代码,还会帮助你修复代码。我更喜欢智力。