effective java

正在看effective java这本书,其中有两段代码之间为什么这样写看不太明白!求解
[code="java"]
public class PlayingCard{
public static final int SUIT_CLUBS = 0;
public static final int SUIT_DIAMONDS = 1;
public static final int SUIT_HEARTS = 2;
public static final int SUIT_SPADES = 3 ;
...............
}
[/code]

[code="java"]
public class Suit{
private final String name;
private Suit(String name){this.name = name};
public static final SUIT CLUBS = new Suit("clubs");
public static final SUIT DIAMONDS = new Suit("diamonds");
public static final SUIT HEARTS = new Suit("hearts");
public static final SUIT SPADES = new Suit("spades");
}
[/code]

还是那句话,这段代码就是声明一些常量。其实关键不是new Suit("clubs"),而是上面的两个声明为private的两行代码,保证了CLUBS对象不会被外部程序改变。你还非要问有什么好处。。。

你需要看的是public、private、static、final这些关键字的用法,以及类的构造函数。其实两段代码的主要目的就是声明一些常量,即不会发生变化的变量。