zoukankan      html  css  js  c++  java
  • java-枚举

    浏览以下内容前,请点击并阅读 声明

    枚举类型是一种能让变量成为一个常量集合的特殊数据类型,该变量必须等于预先定义的常量集合中的一个。

    枚举类型的定义

      枚举类型的定义与类的定义类似,使用enum关键词声明,可以有方法和字段,创建枚举类时,编译器会自动给枚举类加上一些特殊的方法,如values方法能够返回枚举中包含的所有值所组成的数组,顺序和他们定义的顺序一致。

      所有的枚举都隐含地继承java.lang.Enum类,因为java中类只能继承一个父类,所以枚举类型不能继承其他的类。

      注意:枚举构造器的可视范围修饰词必须为private或者没有(程序包内可见),枚举中的常量是自动创建的,而不能自行调用枚举的构造器。

    以下为一个关于太阳系行星信息枚举的定义:

    //此处注意关键词为enum而不是class
    public enum Planet {
    //此处定义八个常量,最后一个常量后面要跟一个分号
        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;   // 单位为千米
        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; }
    
        // 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();//此处可以直接用EARTH也可用Planet.EARTH
            for (Planet p : Planet.values())
               System.out.printf("Your weight on %s is %f%n",
                                 p, p.surfaceWeight(mass));
        }
    }

    以上代码输出为

    $ java Planet 175
    Your weight on MERCURY is 66.107583
    Your weight on VENUS is 158.374842
    Your weight on EARTH is 175.000000
    Your weight on MARS is 66.279007
    Your weight on JUPITER is 442.847567
    Your weight on SATURN is 186.552719
    Your weight on URANUS is 158.397260
    Your weight on NEPTUNE is 199.207413
  • 相关阅读:
    mysql常用技能分享
    php生成器使用总结
    MySQL索引使用方法和性能优化
    servlet相关
    UML图
    How Tomcat Works
    字符串编码
    高效工作
    php 设计模式总结
    python之装饰器
  • 原文地址:https://www.cnblogs.com/justforcon/p/6031030.html
Copyright © 2011-2022 走看看