【发布时间】:2020-10-27 20:13:37
【问题描述】:
我刚开始学习 Java 中的枚举,虽然这个概念看起来很简单,但它的应用对我来说并不是很直观。我看到我可以将枚举放在类中,尽管它们本身就是类。
我在网上也看到有人说一个类中只能有一个枚举,或者你不应该将所有枚举放在一个类中,除非它们是私有的。
所以,我有点困惑,这段代码会是正确的枚举写法吗?
谢谢。
public class AirCraft
{
private AirType type;
private AirFixTime maintainTime;
private enum AirType
{
HELICOPTER,
AIRLINE,
BALLOON,
GLIDER;
}
private enum AirFixTime
{
WEEKLY,
MONTHLY,
YEARLY;
}
}
【问题讨论】:
-
它肯定会起作用,但是声明它们
private有什么用?任何人都无法使用您的AirCraft类检索或设置引用它们的字段。 -
@Lino-Votedon'tsay 谢谢你是对的,这对他们来说是私人的没有多大意义。您认为这些枚举类在 AirCraft 类中是否可以?还是应该在自己的类文件中?
-
内部类/枚举仅在它们与封闭类一起使用时才有意义(例如,它们紧密耦合并且只有在一起使用时才真正有意义)。您的
AirType在您的班级中是有意义的,但AirFixTime也可以用于不同的班级。 -
是的,它是可能的并且它有效(就像你可以拥有内部类和嵌套的静态类一样),但它是否是“正确”的选择是一个见仁见智的问题。
-
这个问题应该重新打开。在这里因为“基于意见”而被关闭是不合适的。该结束规则旨在避免在没有解决方案的情况下进行无休止的冗长讨论。这个问题可以用简短的解释巧妙地回答。
标签: java class oop enums access-modifiers