Java基础(11):枚举类型

枚举类型

          由常量组成的参数类型。如下:

public class EnumTest {

	@Test
	public void test() {

		for(Operation op:Operation.values()){
			System.out.printf("%s %.2f\n",op,op.apply(1,2));
		}
		
	}

	public enum Operation
	{
		PLUS("+"){double apply(double x,double y){return x+y;}},
		MINUS("-"){double apply(double x,double y){return x-y;}},
		TIMES("*"){double apply(double x,double y){return x*y;}},
		DIVIDE("/"){double apply(double x,double y){return x/y;}};
		
		private final String symbol;
		
		Operation(String symbol){this.symbol=symbol;};
		
		public String toString(){return symbol;};
		
		abstract double apply(double x,double y);
		
	}
	
}

   枚举类型可以继承接口扩展,如下:

public class ExtendEnumTest {

	@Test
	public void test() {
		for(BasicOperation o:NormalOperation.values()){
			System.out.printf("%s %.2f\n",o,o.apply(3,2));
		}
		for(BasicOperation o:ExtendOperation.values()){
			System.out.printf("%s %.2f\n",o,o.apply(3,2));
		}
	}

	public interface BasicOperation{
		double apply(double x,double y);
	}
	public enum NormalOperation implements BasicOperation {
		
		PLUS("+"){public double apply(double x,double y){return x+y;}},
		MINUS("-"){public double apply(double x,double y){return x-y;}},
		TIMES("*"){public double apply(double x,double y){return x*y;}},
		DIVIDEE("/"){public double apply(double x,double y){return x/y;}};
		
		public String symbol;
		
		NormalOperation(String symbol){this.symbol=symbol;};
		
		@Override 
		public String toString(){
			return symbol;
		}
		
	} 
	
	public enum ExtendOperation implements BasicOperation{

		
		REMINDER("%"){public double apply(double x,double y){return x%y;}};
		
        public String symbol;
		
        ExtendOperation(String symbol){this.symbol=symbol;};
		
		@Override 
		public String toString(){
			return symbol;
		}
		
	}
	
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值