enum

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();
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值