有 goto 关键字却不能用?
getout:{
for (int i = 0; i < N; ++i) {
for (int j = i; j < N; ++j) {
for (int k = j; k < N; ++k) {
break getout; // 打断循环跳到 OUT
}
}
}
}
// OUT
enum 可以当类写
// 出自 Sun 的例子(Sun 真的很喜欢太阳系,但他们不知道冥王星已经出局了么?)
public enum Planet {
MERCURY (3.303e+23, 2.4397e6),
VENUS (4.869e+24, 6.0518e6),
EARTH (5.976e+24, 6.37814e6),
MARS (6.421e+23, 3.3972e6),
JUPITER (1.9e+27, 7.1492e7),
SATURN (5.688e+26, 6.0268e7),
URANUS (8.686e+25, 2.5559e7),
NEPTUNE (1.024e+26, 2.4746e7),
PLUTO (1.27e+22, 1.137e6);
private final double mass; // 质量/千克
private final double radius; // 半径/米
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
public double mass() { return mass; }
public double radius() { return radius; }
// 重力常数/(立方米每千克秒平方)
public static final double G = 6.67300E-11;
public double surfaceGravity() {
return G * mass / (radius * radius);
}
public double surfaceWeight(double otherMass) {
return otherMass * surfaceGravity();
}
}
// 如何使用
public static void main(String[] args) {
Planet pEarth = Planet.EARTH;
//..
pEarth.radius();
pEarth.surfaceGravity();
pEarth.surfaceWeight(12.0);
//..
}
一点幕后 —— 因为 enum 是 Enum 的语法糖,抽象类 Enum 大约长这个样子:(FX 告诉我的)
public abstract class Enum<E extends Enum<E>> { ...
public enum Planet { 会被展开成一个奇怪的东西:
public class Planet extends Enum<Planet> { ...
双花 实例初始化块
Map map = new HashMap() {{
put("a key", "a value");
put("another key", "another value");
}};
在代码中直接写 URL
class Example {
public static void main(String[] args) {
http://www.iteye.com
System.out.println("Hello World!");
}
}
其实是 label 加注释。
如果在函数 return 后还要做些事情……
try { return 1; }
finally { System.out.println("Bye!"); }
转载地址:http://www.iteye.com/topic/412868