【发布时间】:2017-02-16 23:41:29
【问题描述】:
所以我在我的作业中分配了一个任务,如下所示:
AirCraft 是一种 PublicTransportation,它还具有以下内容:类类型(枚举类型可以是:直升机、航空公司、滑翔机或气球)和维护类型(枚举类型可以是:每周、每月或每年) .
我们还没有真正了解枚举是什么,但我正在尝试了解它。我知道它们是常量列表(静态和最终)。我只是不知道如何在我的驱动程序类中初始化枚举参数。
public class Aircraft extends PublicTransportation
{
private enum ClassType {HELICOPTER, AIRLINE, GLIDER, BALLOON}
private enum MaintType {WEEKLY, MONTHLY, YEARLY}
private ClassType cType;
private MaintType mType;
public Aircraft()
{
super();
cType = null;
mType = null;
}
public Aircraft(double ticketPrice, int numOfStops, ClassType cType, MaintType mType)
{
super(ticketPrice, numOfStops);
this.cType = cType;
this.mType = mType;
}
public Aircraft(Aircraft anAircraft)
{
super(anAircraft.getTicketPrice(), anAircraft.getNumOfStops());
this.cType = anAircraft.cType;
this.mType = anAircraft.mType;
}
}
这是我的驱动程序类的一部分:
package Driver;
import CityBus.CityBus;
import CityBus.Metro;
import CityBus.Tram;
import Ferry.Ferry;
import Aircraft.Aircraft;
import Aircraft.Aircraft;
import PublicTransportation.PublicTransportation;
public class Driver
{
public static void main(String[] args)
{
Aircraft ac1 = new Aircraft(1,2, GLIDER, Aircraft.GLIDER);
你如何初始化一个枚举类型?
【问题讨论】:
-
你不能,因为枚举在 Aircraft 类中被声明为私有。所以只有飞机可以访问它们。将它们移到类之外,在它们自己的 Java 源文件中,就像使用常规顶级类一样,并使用 ClassType.HELICOPTER。