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));
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值