文档章节

枚举类

西红柿的眼泪
 西红柿的眼泪
发布于 2016/07/09 19:24
字数 652
阅读 26
收藏 0

一个类的对象是有限而且固定的,这种有限而且固定的类,在java里面我们称之为枚举。

1.如果是使用静态常量来表示枚举,类型上不安全、没有命名空间、打印信息意义不明确。如果自定义枚举比较麻烦,所以java5中新增一个enum关键字,它与class、interface关键字的地位相同,用来定义枚举。枚举类是一种特殊的类 ,他一样可以有自己的变量、方法,可以实现一个或者多个接口,也可以有自己的构造器。但枚举终究不是普通的类,他和普通类还是有区别的,枚举类可以实现一个或者多个接口,使用enum定义的枚举类默认继承了java.lang.Enum类,而不是默认继承Object类,因此枚举不能显示的继承其他的父类。其中java.lang.Serializable和java.lang.Comparable两个接口;使用enum定义,非抽象的枚举默认会使用final修饰,因次枚举变量不能派生子类;枚举构造器只能使用private访问控制符;枚举的所有实例都必须在枚举类的第一行中。枚举编译好也是生成一个.class文件。

2.枚举类可以直接使用java.lang.Enum类中包含的方法,int compare(E  o);该方法用于与指定的枚举对象比较顺序,如在前返回正整;String name();返回此枚举的实例对象的名称;int ordinal():返回枚举值在枚举类中的索引值,String toString();返回枚举常量的名称。

3.枚举类的成员变量、方法、构造器,枚举也是一种类。

4.实现接口的枚举类,枚举类可以实现一个或者多个接口,与普通类实现一个或者多接口一样,但是当枚举实现一个类的方法,他的所有枚举量都可以调用其相同的方法,返回相同值;若要其的每个只返回不同的值,可以用其每个枚举变量实现一个内部类。

5.包含抽象方法的枚举其实,编译后回生成比定义枚举多一个的.class文件

public enum Demo09 {
	ADD{
		public double result(double a,double b){
			return a+b;
		}
	},
	SUB{
		public double result(double a,double b){
			return a-b;
		}
	},
	div{
		public double result(double a,double b){
			return a/b;
	     }
	},
	MUl{
		public double result(double a,double b){
			return a*b;
	     }
	};
	public abstract double result(double a,double b);
	public static void main(String[] args) {
		System.out.println(Demo09.ADD.result(8, 3));
		System.out.println(Demo09.div.result(8, 4));
		System.out.println(Demo09.MUl.result(8, 3));
		System.out.println(Demo09.SUB.result(8, 3));
	}

}

 

© 著作权归作者所有

西红柿的眼泪
粉丝 4
博文 48
码字总数 39713
作品 0
郑州
程序员
私信 提问

暂无文章

tomcat 莫名奔溃问题

Apr 24, 2019 6:18:11 PM org.apache.coyote.AbstractProtocol pause INFO: Pausing ProtocolHandler ["http-nio-8080"] Apr 24, 2019 6:18:12 PM org.apache.coyote.AbstractProtocol pause......

mellen
16分钟前
0
0
组件开发规范 class名身份识别

组件需要通过一个组件共有的class来标识这个组件,外部调用的时候,可以通过锁定这个class来方便地改变组件的css样式。 设置方式 .my-checkbox { width: 20px; height: 20px; font-...

Carbenson
24分钟前
0
0
如何在工作中快速成长?致工程师的10个简单技巧

阿里妹导读:阿里有句非常经典的土话,“今天的最好表现,是明天的最低要求。”如何挖掘潜能、发现更好的自己?今天,阿里巴巴高级无线开发专家江建明将认知升级的方法总结出来,帮助你获得快...

阿里云云栖社区
43分钟前
2
0
PHP和Redis实现在高并发下的抢购及秒杀功能

抢购、秒杀是平常很常见的场景,面试的时候面试官也经常会问到,比如问你淘宝中的抢购秒杀是怎么实现的等等。 抢购、秒杀实现很简单,但是有些问题需要解决,主要针对两个问题: 一、高并发对...

xiaogg
45分钟前
1
0
从数据上看:谁才是漫威的绝对C位

复联4上映了!这次比美国还早了两天。当然,我还没看,不会给你们剧透,当然也不想不剧透。 这一部不仅是灭霸这一线剧情的结局,也被认为漫威第三阶段的收官之作。据说此部之后,不少影迷熟知...

crossin
58分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部