昆明java培训
达内昆明广州春城路

18487146383

热门课程

java的枚举

  • 时间:2016-11-11
  • 发布:昆明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

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

上一篇:java单例模式的实现方式
下一篇:3个基于Java的Blockchain库

java单例模式的实现方式

MVC模式实现登录以及增删改查之登录

字节输入流与字节输出流

java IO流之字节输出流

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货