public class Bridge {
public enum Suits{
CLUBS(20), DIAMONDS(20), HEARTS(30),SPADES(30), NOTRUMP(40){ //这个是什么鸟方法啊???
public int getValue(int bid){
return ((bid-1)*30)+40;
}};
Suits(int points){
this.points = points;
}
private int points;
public int getValue(int bid){
return points*bid;
}
}
public static void main(String[] args) {
System.out.println(Suits.NOTRUMP.getValue(3));
System.out.println(Suits.SPADES + " " + Suits.SPADES.points); //私有成员也能访问,强的。
System.out.println(Suits.values());
}
}
public enum Suits{
CLUBS(20), DIAMONDS(20), HEARTS(30),SPADES(30), NOTRUMP(40){ //这个是什么鸟方法啊???
public int getValue(int bid){
return ((bid-1)*30)+40;
}};
Suits(int points){
this.points = points;
}
private int points;
public int getValue(int bid){
return points*bid;
}
}
public static void main(String[] args) {
System.out.println(Suits.NOTRUMP.getValue(3));
System.out.println(Suits.SPADES + " " + Suits.SPADES.points); //私有成员也能访问,强的。
System.out.println(Suits.values());
}
}
第二行,SPADES 30。名字+空格+值。Suits中的成员有着和Suits一样的变量和方法。
第三行,一个地址。values()返回的是一个数组,数组中包括Suits的5个成员。
注意是个类名,不是一个类对象。你不能写Suits.getValues(3)这样的写法。
因为是内部类,所以私有变量自然可以被访问
values真不晓得,验证结果同1楼……
public class Bridge {
public enum Suits{
CLUBS(20), DIAMONDS(20), HEARTS(30),SPADES(30), NOTRUMP(40){ //定义了5个枚举成员并调用了各自的构造方法,其中NOTRUMP重写了getValue方法
public int getValue(int bid){//被重写的getValue方法,仅供NOTRUMP使用
return ((bid-1)*30)+40;
}};
Suits(int points){//Suits的构造方法
this.points = points;
}
private int points;//Suits的成员变量
public int getValue(int bid){//Suits的方法,除了NOTRUMP外其他4个枚举成员都可使用
return points*bid;
}
}
public static void main(String[] args) {
System.out.println(Suits.NOTRUMP.getValue(3));//调用NOTRUMP的getValue方法
System.out.println(Suits.SPADES + " " + Suits.SPADES.points); //取得SPADES的points的值,初始化的时候有赋值
System.out.println(Suits.values());//枚举类型特有方法,返回值是所有枚举成员组成的数组。
}
}