Java 使用enum编程

Java 使用enum编程,java,enums,Java,Enums,我正在试用Java教程中的一个示例程序,使用enum。我无法获得代码的正确输出。我认为问题在于我对代码的理解。有人能帮助我正确解释它吗?我理解大部分代码,但希望确认在程序中使用以下代码: if (args.length != 1) { System.err.println("Usage: java Planet <earth_weight>"); System.exit(-1); } if(args.length!=1) { System.err.println(“用法:Jav

我正在试用Java教程中的一个示例程序,使用enum。我无法获得代码的正确输出。我认为问题在于我对代码的理解。有人能帮助我正确解释它吗?我理解大部分代码,但希望确认在程序中使用以下代码:

if (args.length != 1) 
{
System.err.println("Usage:  java Planet <earth_weight>");
System.exit(-1);
}
if(args.length!=1)
{
System.err.println(“用法:JavaPlanet”);
系统退出(-1);
}
我的输出是:

Usage:  java Planet <earth_weight>
用法:java星球 以下是我的代码:

public enum EnumPlanet {

    MERCURY (3.303e+23, 2.4397e6),
    VENUS   (4.869e+24, 6.0518e6),
    EARTH   (5.976e+24, 6.37814e6),
    MARS    (6.421e+23, 3.3972e6),
    JUPITER (1.9e+27,   7.1492e7),
    SATURN  (5.688e+26, 6.0268e7),
    URANUS  (8.686e+25, 2.5559e7),
    NEPTUNE (1.024e+26, 2.4746e7);

    private final double mass;   // in kilograms
    private final double radius; // in meters
    EnumPlanet(double mass, double radius) {
        this.mass = mass;
        this.radius = radius;
    }
    private double mass()   { return mass; }
    private double radius() { return radius; }

    // universal gravitational constant  (m3 kg-1 s-2)
    public static final double G = 6.67300E-11;

    double surfaceGravity() {
        return G * mass / (radius * radius);
    }
    double surfaceWeight(double otherMass) {
        return otherMass * surfaceGravity();
    }
    public static void main(String[] args) {
        if (args.length != 1) {
            System.err.println("Usage:  java Planet <earth_weight>");
            System.exit(-1);
        }
        double earthWeight = Double.parseDouble(args[0]);
        double mass = earthWeight/EARTH.surfaceGravity();
        for (EnumPlanet p : EnumPlanet.values())
           System.out.printf("Your weight on %s is %f%n",
                             p, p.surfaceWeight(mass));
    }
}
公共枚举{
水银(3.303e+23,2.4397e6),
金星(4.869e+24,6.0518e6),
接地(5.976e+24,6.37814e6),
火星(6.421e+23,3.3972e6),
木星(1.9e+27,7.1492e7),
土星(5.688e+26,6.0268e7),
天王星(8.686e+25,2.5559e7),
海王星(1.024e+26,2.4746e7);
私人最终双质量;//单位为千克
专用最终双半径;//以米为单位
EnumPlanet(双质量、双半径){
这个质量=质量;
这个半径=半径;
}
私有双质量(){return mass;}
专用双半径(){return radius;}
//通用重力常数(m3 kg-1 s-2)
公共静态最终双G=6.67300E-11;
双表面整体性(){
返回G*质量/(半径*半径);
}
双曲面灯光(双质量){
返回其他质量*表面间隙();
}
公共静态void main(字符串[]args){
如果(args.length!=1){
System.err.println(“用法:JavaPlanet”);
系统退出(-1);
}
双倍重量=double.parseDouble(args[0]);
双质量=土壤重量/土壤表面完整性();
对于(EnumPlanet p:EnumPlanet.values())
System.out.printf(“您在%s上的重量是%f%n”,
p、 p.表面光(质量);
}
}

您获得此输出是因为您没有提供正确数量的参数

试一试


您获得此输出是因为您没有提供正确数量的参数

试一试


你需要提供一个论点,这是你在地球上的重量


否则,您有许多不同于1的参数,并且您的程序输出帮助。

您需要提供一个参数,即您在地球上的权重


否则,您有许多不同于1的参数,并且您的程序输出帮助。

您需要提供一个参数,说明地球上的重量。假设这是71.5公斤。然后,您需要使用

java Planet 71.5

你需要提供一个论点说地球上的重量。假设这是71.5公斤。然后,您需要使用

java Planet 71.5

您需要在程序命令行中以千克为单位给出您的体重。例如:
java.exe Planet 75
(假设你体重75公斤)。输出将是根据其他行星的重力,你在这些行星上的重量。

你需要在程序命令行中以千克为单位给出你的重量。例如:
java.exe Planet 75
(假设你体重75公斤)。输出将是根据其他行星的重力,你在它们身上的重量。

你是说
java Planet 1
?Java很少被编译成exe。谢谢Fredrik…..我在命令提示符下给出了“Java EnumPlanet 75”.我得到了预期的输出…..但是你能告诉我如何从Eclipse IDE中给出它吗…?我得到了Fredrik…我们可以在“运行配置”中传递参数值(例如:75)你的意思是
Java Planet 1
?Java很少被编译成exe。谢谢Fredrik…..我在命令提示符下给出了“Java EnumPlanet 75”.我得到了预期的输出…..但是你能告诉我如何从Eclipse IDE中给出它吗…?我得到了Fredrik…我们可以在“运行配置”中传递参数值(例如:75)。参数是你在地球上的体重,不是行星编号。@MarvinLabs:你完全正确,我误读了,谢谢你纠正我的答案:)争论的是你在地球上的体重,而不是行星编号。@MarvinLabs:你完全正确,我误读了,谢谢你纠正我的答案:)