我是Java的新手,这是我第二次在其中编写代码。我有一个错误,指出必须在其自己的文件中定义公用类型EngineType。 EngineType是一个枚举类型,从我的定向编程角度来看,我在Car类之外已经提到过它,作为一名前C ++学生,一切都还可以。您能看看我的代码并为我提供帮助吗?非常感谢您愿意帮助我。
package ro.ase.classes1;
import ro.ase.interfaces1.mobility;
public final class Car extends vehicle implements mobility,Cloneable
{
public final int maxNbofkm=1_000_000;
public Enginetype Enginetype;
private float speed;
public Car()
{
super();//it s mandatory to be on first line of the constructor
Enginetype=Enginetype.gas;
speed=0;
}
public Car(String _name,Enginetype _enginetype,float _speed)
{
super(_name,true);//call the base constructor
Enginetype=_enginetype;
speed=_speed;
}
@Override
public void DisplaySpeed() {
System.out.println(String.format("The %s car runs with %f km/h", Enginetype.toString(),speed ));
}
@Override
public void Start() {
}
@Override
public void Stop() {
System.out.println("The"+Enginetype.toString()+"car has stopped");
}
}
enum Enginetype{gas, diesel,hybrid,electric}
答案 0 :(得分:2)
问题是您将Enum类定义为Car类之外的公共类- Java中不允许在一个文件中包含两个公共类。因此,您可以使用以下三种方法之一来解决此问题:
例如:
情况1:
public class VowelPrint {
public static void main(String[] args) {
System.out.println(Vowels.A);
}
}
enum Vowels {
A, B, C;
}
情况3:
public class VowelPrint {
public enum Vowels { //Can also be private
A, B, C;
}
public static void main(String[] args) {
System.out.println(Vowels.A);
}
}