您的位置:首页 > 编程语言 > Java开发

java 自定义枚举

2014-06-12 11:04 323 查看
public enum Planet {
MERCURY(3.3,2.4),
VENUS(4.8,6.052);

private final double mass;
private final double radius;
private final double surface;
private static final double G=6.6;

Planet(double mass,double radius) {
this.mass=mass;
this.radius=radius;
surface=G*mass/(radius*radius);
}
public double mass(){
return mass;
}
public double radius(){
return radius;
}
public double surfaceGravity(){
return surface;
}

public double surfaceWeight(double mass){
return mass* surface;
}
public enum Operation {
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("Unknow op:"+this);
}
}
enum Operation2 {
PLUS{double apply(double x,double y){return x+y;}},
MINUS{double apply(double x,double y){return x-y;}},
TIMES{double apply(double x,double y){return x*y;}},
DIVIDE{double apply(double x,double y){return x/y;}};
abstract double apply(double x, double y);
}
enum Operation3 {
PLUS("+"){
double apply(double x,double y){return x+y;}
},
MINUS("-"){
double apply(double x,double y){return x-y;}
},
TIMES("*"){
double apply(double x,double y){return x*y;}
},
DIVIDE("/"){
double apply(double x,double y){return x/y;}
};
private final String symbol;
Operation3(String symbol) {
this.symbol=symbol;
}

@Override
public String toString() {
return symbol;
}
abstract double apply(double x, double y);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: