没有合适的资源?快使用搜索试试~ 我知道了~
第11章 枚举_注解_内部类.docx
需积分: 8 0 下载量 89 浏览量
2022-12-31
08:45:34
上传
评论
收藏 57KB DOCX 举报
温馨提示
试读
16页
第11章 枚举_注解_内部类.docx
资源推荐
资源详情
资源评论
1
、
第 章 枚举&注解&内部类
⼀、枚举
概念
为什么使⽤枚举
使⽤枚举
⼆、注解
概念
JDK中预定义的⼀些注解
⾃定义注解
元注解:⽤于描述注解的注解
三、内部类
什么是内部类
如何使⽤内部类
成员内部类
静态内部类
匿名内部类
、定义接⼝
、匿名内部类使⽤
、⼩结【匿名内部类常常被⽤来重写某个或某些⽅法】
⼀ 枚举
概念
枚举类型是Java 5中新增特性的⼀部分,它是⼀种特殊的数据类型,之所以特殊是因为它既是⼀种类
(class)类型却⼜⽐类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性
以及便捷性。
枚举在各个语⾔当中都有着⼴泛的应⽤,通常⽤来表示诸如颜⾊、⽅式、类别、状态等等数⽬有限、形
式离散、表达⼜极为明确的量。Java从JDK5开始,引⼊了对枚举的⽀持。
为什么使⽤枚举
2
Java
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Entity {
public static final int VIDEO = 1;//视频
public static final int AUDIO = 2;//⾳频
public static final int TEXT = 3;//⽂字
public static final int IMAGE = 4;//图⽚
private int id;
private int type;
public int getId()
{ return id;
}
public void setId(int id)
{ this.id = id;
}
public int getType()
{ return type;
}
public void setType(int type)
{ this.type = type;
}
}
Java
复制代码
1
2
3
4
Entity e = new Entity();
e.setId(10);
//e.setType(2);
//⽽这样的话,问题⼜来了。这样做,客户端必须对这些常量去建⽴理解,才能了解如何去使⽤这个东
⻄
。
5
//说⽩了,在调⽤的时候,如果⽤户不到Entity类中去看看,还真不知道这个参数应该怎么传、怎
么调
6 e.setType(Entity.AUDIO);
在枚举出现之前,如果想要表示⼀组特定的离散值,往往使⽤⼀些常量。例如:
例如,针对上述的Entity类,如果要对Entity对象的type属性进⾏赋值,⼀般会采⽤如下⽅法:
这样做的缺点有:
(1)
代码可读性差、易⽤性低。由于setType()⽅法的参数是int型的,在阅读代码的时候往往会让读者
感到⼀头雾⽔,根本不明⽩这个2到底是什么意思,代表的是什么类型。
3
Java
复制代码
1
public enum TypeEnum {
2
VIDEO,AUDIO,TEXT,IMAGE; 3 }
Java
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Entity2 {
private int id;
private TypeEnum type;
public int getId()
{ return id;
}
public void setId(int id)
{ this.id = id;
}
public TypeEnum getType()
{ return type;
}
public void setType(TypeEnum type)
{ this.type = type;
}
}
(2)
类型不安全。在⽤户去调⽤的时候,必须保证类型完全⼀致,同时取值范围也要正确。像是
s
e
t
T
y
p
e(
-
1
)
这样的调⽤是合法的
,
但它并
不
合理
,
今后会为程序带来种种问题
。
(3)
耦合性⾼,扩展性差。假如,因为某些原因,需要修改Entity类中常量的值,那么,所有⽤到这些
常量的代码也就都需要修改— — 当然,要仔细地修改,万⼀漏了⼀个,那可不是开玩笑的。同时,这样
做也不利于扩展。
使⽤枚举
枚举(在Jave中简称为enum)是⼀个特定类型的类。所有枚举都是Java中的新类
java.lang.Enum的隐式⼦类。此类不能⼿⼯进⾏⼦类定义。⼀个简单的枚举可以是这样:
上⾯的Entity类就可以改成这样:
在为Entity对象赋值的时候,就可以这样:
剩余15页未读,继续阅读
资源评论
彭于晏op
- 粉丝: 1
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功