zoukankan      html  css  js  c++  java
  • 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));
            }
        }
    }
  • 相关阅读:
    BZOJ 2034 【2009国家集训队】 最大收益
    vijos P1780 【NOIP2012】 开车旅行
    BZOJ 2115 【WC2011】 Xor
    BZOJ 3631 【JLOI2014】 松鼠的新家
    BZOJ 4717 改装
    BZOJ 2957 楼房重建
    BZOJ 4034 【HAOI2015】 T2
    BZOJ 1834 【ZJOI2010】 network 网络扩容
    BZOJ 2440 【中山市选2011】 完全平方数
    BZOJ 2733 【HNOI2012】 永无乡
  • 原文地址:https://www.cnblogs.com/frankyou/p/7323613.html
Copyright © 2011-2022 走看看