Java的一个关于“星球”的枚举详解编程语言

public enum Planet { 
    /** 
     * 水星 
     */ 
    MERCURY(3.302e+23, 2.439e6), 
 
    /** 
     * 金星 
     */ 
    VENUS(4.869e+24, 6.052e6), 
 
    /** 
     * 地球 
     */ 
    EARTH(5.975e+24, 6.378e6), 
 
    /** 
     * 火星 
     */ 
    MARS(6.419e+23, 3.393e6), 
 
    /** 
     * 木星 
     */ 
    JUPITER(1.899e+27, 7.149e7), 
 
    /** 
     * 土星 
     */ 
    SATURN(5.685e+26, 6.027e7), 
 
    /** 
     * 天王星 
     */ 
    URANUS(8.683e+25, 2.556e7), 
 
    /** 
     * 海王星 
     */ 
    NEPTUNE(1.024e+26, 2.477e7); 
 
    private final double mass; 
    private final double radius; 
    private final double surfaceGravity; 
    private static final double G = 6.67300E-11; 
 
    /** 
     * 构造函数 
     * 
     * @param mass   行星的质量 
     * @param radius 行星的半径 
     */ 
    Planet(double mass, double radius) { 
        this.mass = mass; 
        this.radius = radius; 
        this.surfaceGravity = G * mass / (radius * radius); 
    } 
 
    /** 
     * 星球的质量 
     * @return 质量 kg 
     */ 
    public double mass() { 
        return mass; 
    } 
 
    /** 
     * 星球的半径 
     * @return 半径 m 
     */ 
    public double radius() { 
        return radius; 
    } 
 
    /** 
     * 获取某个星球表面的重力(地心引力或万有引力) 
     * @return 某个星球表面的重力 
     */ 
    public double surfaceGravity() { 
        return surfaceGravity; 
    } 
 
    /** 
     * 获取某个星球表面的重量 
     * @param mass 物体质量 
     * @return 星球表面的重量 
     */ 
    public double surfaceWeight(double mass) { 
        return mass * surfaceGravity; 
    } 
}

我们来看看我们地球上某个物体的重量在其它行星上都是什么重量?

public class WeightTable { 
    public static void main(String[] args) { 
        double earthWeight = Double.parseDouble("130"); 
        double mass = earthWeight / Planet.EARTH.surfaceGravity(); 
        System.out.println("Mass is :" + mass); 
        for (Planet p : Planet.values()) { 
            System.out.printf("Weight on %s is %f%n", p, p.surfaceWeight(mass)); 
        } 
    } 
}

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15950.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论