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));
}

}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章