Java的枚举类型应用
2018-01-31 19:32
330 查看
package myday01.enumeration; import org.junit.Test; public class Demo2 { public void infoOfPlanet(Planet p){ System.out.println(p + ":mass is " + p.getMass() + "; radius is " + p.getRadius() +"; surface gravity is " + p.getSurfaceGravity() ); } @Test public void test1(){ infoOfPlanet(Planet.MERCURY); infoOfPlanet(Planet.VENUS); infoOfPlanet(Planet.EARTH); infoOfPlanet(Planet.JUPITER); infoOfPlanet(Planet.SATURN); infoOfPlanet(Planet.URANUS); infoOfPlanet(Planet.NEPTUNE); } } 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; //in kilograms private final double radius; //In meters private final double surfaceGravity; //In m/s^2 //Universal gravitational constant private static final double G = 6.67300E-11; //Constructor Planet(double mass, double radius){ this.mass = mass; this.radius = radius; this.surfaceGravity = G*mass/(radius * radius); } public double getMass(){ return this.mass; } public double getRadius(){ return this.radius; } public double getSurfaceGravity(){ return this.surfaceGravity; } } //bad operation Enum example enum BadOperation{ PLUS, MINUS, TIMES, DIVIDE; double apply(double x, double y){ switch(this){ case PLUS: return x+y; case MINUS: return x-y; case TIMES: return x*y; case DIVIDE: return x/y; } throw new AssertionError("Unknown operation:" + this); } } //good operation Enum example enum GoodOperation { GPLUS("+") { double apply(double x, double y) { return x + y; } }, GMINUS("-") { double apply(double x, double y) { return x - y; } }, GTIMES("*") { double apply(double x, double y) { return x * y; } }, GDIVIDE("/") { double apply(double x, double y) { return x / y; } }; private GoodOperation(String symbol) { } abstract double apply(double x, double y); }
相关文章推荐
- 加强eclipse的使用技巧。可变参数。基本数据类型自动装箱和拆箱。枚举。反射。数组反射的应用。ArrayList和HashSet。JavaBean
- java类型安全枚举与反射机制相结合的应用 作者:封宇
- JAVA进阶之旅(一)——增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法
- JAVA进阶之旅(一)——增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法
- java之枚举类型应用
- Java 数据类型在实际开发中应用二枚举
- Java 数据类型在实际开发中应用二枚举
- 类型码,似乎是对于构造成java枚举类似的应用。
- JAVA中的枚举类型
- Effective Java 3rd 条目3 用私有构造子或者枚举类型强化单例属性
- c#枚举类型在web控件CheckBoxList,RadioButtonList,DropDownList中的应用
- C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
- 枚举类型入门 用 Java 5.0 以类型安全的方式表示常量
- java enum 枚举类型
- java基础之枚举类型(一)
- Java语言中的枚举类型
- java基本类型和封装类型区别及应用
- Java 枚举类型
- freemarker宏的使用结合Java的枚举类型
- Java 面试题之反射的应用(如何在List<String> list = new ArrayList<String>();中放入Integer类型的数据)