课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > java教程 > java的枚举
  • java的枚举

    发布:昆明Java培训      来源:博客园      时间:2016-11-11

  • 昆明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

    了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

    推荐文章

上一篇:java单例模式的实现方式

下一篇:没有下一篇了

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56