基本的枚举
枚举的构造方法中的要点:
- 枚举的连接中间用的是逗号“,”
。
如:
enum Constants2{
//这里提示是constant2对应的方法
Constans_A("我是枚举成员A"),
Constans_B("我是枚举成员B"),
Constans_C("我是枚举成员C"),
Constans_D(5);
}
- 枚举类型的构造方法是用private
private String describetion;
private int i= 6;
private Constants2 () {
}
private Constants2(String describetion){
this.describetion = describetion;
}
private Constants2 (int i) {
this.i += i;
}
- 调用方法对应的是public类型
public String getDescribetion(){//方法要加括号
return this.describetion;
}
public int getI(){
return this.i;
}
**定义一个参数后,需要对枚举类型成员使用相应的方法,如:Constans_A(“我是枚举成员A”),使用了
private Constants2(String describetion){
this.describetion = describetion;
}
的构造方法。注意这个名称是枚举定义名的名称
整体代码如下:
package com.java.a17;
import org.omg.CORBA.PRIVATE_MEMBER;
public class EnumIndexTest {
enum Constants2{
//这里提示是constant2对应的方法
Constans_A("我是枚举成员A"),
Constans_B("我是枚举成员B"),
Constans_C("我是枚举成员C"),
Constans_D(5);
private String describetion;
private int i= 6;
private Constants2 () {
}
private Constants2(String describetion){
this.describetion = describetion;
}
private Constants2 (int i) {
this.i += i;
}
public String getDescribetion(){//方法要加括号
return this.describetion;
}
public int getI(){
return this.i;
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
for(int i =0;i<Constants2.values().length;i++){
System.out.println(Constants2.values()[i]+"调用getDescribetion方法"
+Constants2.values()[i].getDescribetion());
}
}
}
带接口的枚举类型
接口的声明
只用给出相应的声明不用写构造函数
interface d{
public String getDescribetion() ; // 接口只负责抽象定义
public int getI();
}
在枚举类型中应用接口时可以在每个枚举成员中单独实现,但是构造的枚举内部使用public 外部的构造方法还是用的public。
如下:
package com.java.a17;
interface d{
public String getDescribetion() ; // 接口只负责抽象定义
public int getI();
}
public enum AnyEnum implements d{
/**
* @param args
*/
Constants_A{
@Override
public String getDescribetion() {
// TODO 自动生成的方法存根
return ("我是枚举A");
}
@Override
public int getI() {
// TODO 自动生成的方法存根
return i;
}
},
Constant_B{
@Override
public String getDescribetion() {
// TODO 自动生成的方法存根
return ("我是枚举B");
}
@Override
public int getI() {
// TODO 自动生成的方法存根
return i;
}
};
private static int i =5 ; // 表示枚举成员
public static void main(String[] args) {
// TODO 自动生成的方法存根
for (int i = 0; i < AnyEnum.values().length; i++) {
System.out.println(AnyEnum.values()[i]+"实现的getDescription"
+AnyEnum.values()[i].getDescribetion());
}
}
}
所以要对照以上两种来学习