package meiju;
import java.util.Arrays;
import javax.swing.text.GapContent;
/* 2017-02-14 20:03:41
* enum
* 与class interface 关键字的地位相同
* 用于定义枚举变量
* 枚举类不是普通类
* 枚举类可以实现一个或多个接口, 继承的是lang.enum 类 不是object 类 enum类 实现了 lang.Serializable 和Comparable 两个接口
*
* enum 定义 非抽象的枚举类都会使用final 修饰 枚举不能派生子类
* 枚举的构造器 只能是用private 修饰符 默认是用的也是private
*
* 枚举类的所有实例 必须在枚举类的第一行显示列出, 否则永远都不能产生实例
* 列出实例时 自动添加public static final
* 默认有一个values 方法 可以遍历所有的枚举值
*
* 枚举值 可以作为case中的值
*
*
* 枚举也是一种比较特殊的类
* 可以定义成员变量、方法、构造器
*/
public class one {
public enum season{
SPRING,SUMMER,FALL,WINTER;
public String string; //定义变量
}
public enum sex {
NAN,NV;
private String name;
public void setname(String string) {
switch (this) {
case NAN:
if (string.equals("男")) {
this.name = string;
}else {
System.out.println("参数错误");
return ;
}
break;
case NV :
if (string.equals("女")) {
this.name = string;
}else {
System.out.println("参数错误");
return;
}
break;
}
}
private String getname() {
return this.name;
}
}
//枚举构造器
public enum sex2 {
nan("男"),nv("女");
// public static final sex nan = new sex2("男");
// public static final sex nv = new sex2("女"); ==上面一句
private final String name;
private sex2(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
/**
* 实现接口的枚举类
* 与普通类实现接口完全一样,并且实现接口里的抽象方法
* */
enum sex3 implements sexi{
; // 不知道为啥多一个分号 ,没有查证
@Override
public void info() {
// TODO 自动生成的方法存根
}};
/**
* 包含抽象方法的枚举类
* */
public enum Oper {
// 操作符
jia{
public int eva(int a , int b ) {
return a + b ;
}
},
jian{
public int eva(int a , int b ) {
return a - b ;
}
},
cheng{
public int eva(int a , int b ) {
return a * b ;
}
},
chu{
public int eva(int a , int b ) {
return a / b ;
}
};
//包含抽象方法的枚举类
public abstract int eva(int a , int b );
//枚举类需要显示创建枚举值,而不是作为父类,所以定义每个枚举值时,必须为抽象方法提供实现,否则编译错误
}
public static void main(String[] args) {
System.out.println(Arrays.toString(season.values()));
sex s = sex.valueOf("NAN");
s.setname("女");
// System.out.println(s.getname()); 错误赋值
System.out.println("-=");
}
}
interface sexi{
void info();
}
enum
最新推荐文章于 2021-06-01 15:59:32 发布