`

Effective Java读书笔记11用枚举代替int常量

阅读更多
package chape6;
/**
* 用枚举代替int常量
* @author leader
*
*/
public class Chape30 {
public enum Planet {
ME (3.302e+23,2.439e6),VE(4.869e+24,6.052e6),ER(5.975e+24,6.378e6);
private double mass;
private double radius;
/**
* 计算后的一个结果 不是构造的必须的东西 星球表面的重量
*/
private  final double  sufrface ;
private Planet (double mass,double radius)
{
this.mass = mass;
this.radius=radius;
sufrface=g*mass/(radius*radius);
}
/**
* 只有get方法 没有set方法 枚举内容是常量 不需要改变
* @return
*/
public double getMass() {
return mass;
}

public double getRadius() {
return radius;
}
public double getSufrface() {
return sufrface;
}
/**
* 一个和构造器成员变量没有关系的常量 g 重力常量
*  */
private static final double g=6.67300E-11;

/**
* 计算物体在星球上重量的方法
* @param mass
* @return
*/
public double jisuanSufrface(double mass) {
return mass*sufrface;
}


}
public static void main (String arg [])
{
double er = Double.parseDouble("175");
double mass = er/Planet.ER.getSufrface();
for(Planet p:Planet.values())
{
System.out.printf("weight on %s is %f%n",p,p.jisuanSufrface(mass));
}

}
}
分享到:
评论
2 楼 leequer 2009-11-24  
自己做个记录 也给别人有个参考
1 楼 HRoger 2009-11-24  
发上来有什么意义?

相关推荐

Global site tag (gtag.js) - Google Analytics