Java的一个关于“星球”的枚举
public 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;
private final double radius;
private final double surfaceGravity;
private static final double G = 6.67300E-11; /**
* 构造函数
*
* @param mass 行星的质量
* @param radius 行星的半径
*/
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
this.surfaceGravity = G * mass / (radius * radius);
} /**
* 星球的质量
* @return 质量 kg
*/
public double mass() {
return mass;
} /**
* 星球的半径
* @return 半径 m
*/
public double radius() {
return radius;
} /**
* 获取某个星球表面的重力(地心引力或万有引力)
* @return 某个星球表面的重力
*/
public double surfaceGravity() {
return surfaceGravity;
} /**
* 获取某个星球表面的重量
* @param mass 物体质量
* @return 星球表面的重量
*/
public double surfaceWeight(double mass) {
return mass * surfaceGravity;
}
}
我们来看看我们地球上某个物体的重量在其它行星上都是什么重量?
public class WeightTable {
public static void main(String[] args) {
double earthWeight = Double.parseDouble("130");
double mass = earthWeight / Planet.EARTH.surfaceGravity();
System.out.println("Mass is :" + mass);
for (Planet p : Planet.values()) {
System.out.printf("Weight on %s is %f%n", p, p.surfaceWeight(mass));
}
}
}
Java的一个关于“星球”的枚举的更多相关文章
- 面试:用 Java 实现一个 Singleton 模式
面试:用 Java 实现一个 Singleton 模式 面试系列更新后,终于迎来了我们的第一期,我们也将贴近<剑指 Offer>的题目给大家带来 Java 的讲解,个人还是非常推荐< ...
- 《Effective Java》读书笔记五(枚举和注解)
No30 用enum代替int常量 一:综述 int枚举模式,示范: // The int enum pattern - severely deficient! public static final ...
- java高级特性(4)--枚举
枚举(enum),是指一个经过排序的.被打包成一个单一实体的项列表.一个枚举的实例可以使用枚举项列表中任意单一项的值.枚举在各个语言当中都有着广泛的应用,通常用来表示诸如颜色.方式.类别.状态等等数目 ...
- [Java读书笔记] Effective Java(Third Edition) 第 6 章 枚举和注解
Java支持两种引用类型的特殊用途的系列:一种称为枚举类型(enum type)的类和一种称为注解类型(annotation type)的接口. 第34条:用enum代替int常量 枚举是其合法值由一 ...
- paip.操作符重载的缺失 Java 的一个大缺点
paip.操作符重载的缺失 Java 的一个大缺点 #----操作符重载的作用 1.提升用户体验 操作符重载..可以让代码更加自然.... 2.轻松实现代码代码移植 例如 java代码会直接移植到 ...
- 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...
- java 多线程——一个定时调度的例子
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
- java中将一个字符数组赋值给另一个,两者同时变化
java中将一个字符数组赋值给另一个,两者的变化怎么是同步的?怎么才能让他们独立开? 比如有一个int[][] a 已经存在值,现在定义int[][] b=a;之后改变a的值,为何b也跟着改变?怎么才 ...
- 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况
用JAVA写一个函数.功能例如以下:随意给定一组数,比如{12,60,-8,99,15,35,17,18},找出随意数相加之后的结果为35(随意设定)的情况. 能够递归算法来解: package te ...
随机推荐
- 在EditText中添加QQ表情
本文参考自:http://blog.csdn.net/wulianghuan/article/details/8583921 在输入框中输入表情是每个聊天软件的必备功能,做到这点仅需要将表情放入工程图 ...
- PHP获取指定函数定义在哪个文件中及行号
当调试开源的代码时,希望查看某个函数的定义,那么就需要定位其位置.特别是有的项目中,函数会有多个地方都有定义,那么如果我想知道当前调用的这个函数是在哪里定义的,可以用下面这个方法. function ...
- verilog语法实例学习(7)
常用的时序电路介绍 组合电路:这类电路的输出信号值仅却决于输入端信号值. 时序电路:时序电路的输出值不仅取决于当前的输入值,还取决于电路的历史状态,所以时序逻辑电路中包含保存逻辑信号值的存储元件,存储 ...
- Android JNI中C和JAVA代码之间的互相调用
关于Android studio中使用NDK/JNI环境和入门:http://blog.csdn.net/quan648997767/article/details/64923143 1. C代码回调 ...
- Improve your code with lint checks
官方文档 使用 Lint 改进您的代码 [Improve your code with lint checks] 除了[In addition to]测试 Android 应用以确保其符合功能要求[m ...
- 如何使用Android studio打开eclipse项目
转: http://blog.csdn.net/zcw93219/article/details/50770445
- 解决Ubuntu/debian的Apt-get 由于依赖关系安装失败的问题
The following packages have unmet dependencies: libssl-dev: Depends: libssl0.9.8 (= 0.9.8k-7ubuntu8) ...
- Logistic 回归梯度上升优化函数
In [183]: def loadDataSet(): dataMat = [] labelMat = [] fr = open('testSet.txt') for line ...
- Mysql写入中文出错
本地调试好像正常,服务器运行报错: UnicodeEncodeError: 'latin-1' codec can't encode character u'\u5206' in position 2 ...
- MFC自定义控件如何向父窗口发送自定义消息
自定义了一个控件 class CHtmlEditCtrlEx : public CHtmlEditCtrl 想在这个控件接收到Ctrl+V键盘消息的时候,向该控件所在的窗口发送一个自定义消息.具体 ...