问题描述
正在看effective 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 ; ...............}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");} 问题补充:ethen 写道
解决方案
还是那句话,这段代码就是声明一些常量。其实关键不是new Suit("clubs"),而是上面的两个声明为private的两行代码,保证了CLUBS对象不会被外部程序改变。你还非要问有什么好处。。。
解决方案二:
你需要看的是public、private、static、final这些关键字的用法,以及类的构造函数。其实两段代码的主要目的就是声明一些常量,即不会发生变化的变量。