public enum Planet {
MERCURY (3.303e+23,2.4397e6),
VENUS (4.869e+24,6.0518e6),
EARTH (5.976+24,6.37814e6),
MARS (6.421+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),
PLUTO (1.27e+22, 1.137e6);
private final double mass;
private final double radius;
Planet (double mass, double radius){
this.mass=mass;
this.radius=radius;
}
private double mass(){ return mass;}
private double radius(){ return radius;}
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){
double earthWeight =Double.parseDouble(args[0]);
double mass =earthWeight/EARTH.surfaceGravity();
for(Planet p:Planet.values())
System.out.printf("your weight on %s is %f%n",p,p.surfaceWeight(mass));
}
}上面代码中:double earthWeight =Double.parseDouble(args[0]);和for(Planet p:Planet.values())是什么意思?Double.parseDouble(args[0]);在前面没有定义过,怎么会有呢,代表什么意思?
MERCURY (3.303e+23,2.4397e6),
VENUS (4.869e+24,6.0518e6),
EARTH (5.976+24,6.37814e6),
MARS (6.421+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),
PLUTO (1.27e+22, 1.137e6);
private final double mass;
private final double radius;
Planet (double mass, double radius){
this.mass=mass;
this.radius=radius;
}
private double mass(){ return mass;}
private double radius(){ return radius;}
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){
double earthWeight =Double.parseDouble(args[0]);
double mass =earthWeight/EARTH.surfaceGravity();
for(Planet p:Planet.values())
System.out.printf("your weight on %s is %f%n",p,p.surfaceWeight(mass));
}
}上面代码中:double earthWeight =Double.parseDouble(args[0]);和for(Planet p:Planet.values())是什么意思?Double.parseDouble(args[0]);在前面没有定义过,怎么会有呢,代表什么意思?
public static void main(String []args)
就是这里来的,呵呵,
Double.parseDouble(args[0]);
将arg[0]转为double型
for(Planet p:Planet.values())是遍历Planet.values的所有成员。