枚举概述
(1)从Java SE 5.0开始,Java程序设计语言引入了一种新的类型——枚举(Enum)。
(2)枚举是指由一组固定的常量组成的类型。使用关键字enum定义。
(3)定义枚举语法格式如下:
[Modifer] enum enumName{
enumContantName[,enumContantName2...[;]]
//[field,method]
}
-->Modifer是访问修饰符,如public等。
-->enum是关键字。
-->enumContantName[,enumContantName2...[;]]表示枚举常量列表,枚举常量之间以逗号隔开。
-->//[field,method]表示其他的成员,包括构造方法,置于枚举常量的后面。
-->在枚举中,如果除了定义枚举常量,还定义了其他成员,则枚举常量列表必须以分号(;)结尾。
(4)枚举其实就是一种类型,是java.lang.Enum类的子类,继承了Enum类的许多有用的方法。
使用枚举类的作用及好处
(1)在Java中,通常使用枚举表示一组个数有限的值,用于实现对输入的值进行约束检查。
(2)在程序中使用枚举的好处总结如下:
-->枚举可以使代码更易于维护,有助于确保为变量指定合法的、期望的值。
-->枚举更易于编程时输入,使用枚举赋值,只需要输入枚举名,然后输入一个点(.),就能将所有的值显示出来。
-->枚举使代码更清晰,允许使用描述性的名称表示数据,使用时直观方便。
包装类概述
(1)Java语言是面向对象的,但是Java中的基本数据类型却不是面向对象的,这在实际开发中存在很多的不便。为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类,称为包装类。
(2)包装类均为java.lang包中,包装类和基本数据类型的对应关系如下表所示。
(3)包装类的用途主要有两个:
-->包装类作为和基本数据类型对应的类存在,方便对象的操作。
-->包装类包含每种基本数据类型的相关属性,如最大值、最小值等,以及相关的操作方法。
包装类和基本数据类型的转换
(1)基本数据类型转换为包装类
在Java中,基于基本数据类型数据创建包装类对象通常可以采用如下两种方式。
1)使用包装类的构造方法
-->public Type(type value)。
-->public Type(String value)。
其中,Type表示包装类,参数type为基本数据类型。
不能使用第二种构造方法创建Character类的包装类对象,只能是Character charValue = new Character('x')这种形式。
2)使用包装类的valueOf()方法
a)包装类中一般包含静态的重载的valueOf()方法,它可以接收基本数据类型数据和字符串作为参数并返回包装类的对象。
b)以Integer包装类为例,valueOf()方法的定义如下表所示
c)Character类的valueOf()方法只有一个版本的定义,即valueOf(char c),它返回一个表示指定char值的Character对象。
(2)包装类转换成基本数据类型
包装类转换成基本数据类型通常采用如下的方法:public type typeValue();
其中,type指的是基本数据类型,如byteValue()、charValue()等,相应的返回值为byte、char。
(3)基本类型和包装类的自动转换
1)在Java SE 5.0版本之后程序员不需要编码实现基本数据类型和包装类之间的转换,编译器会自动完成。
Integer intObject = 5; //装箱:基本数据类型转换为包装类
int intValue = intObject; //拆箱:包装类转换为基本数据类型
2)虽然Java平台提供了基本数据类型和包装类的自动转换功能。程序员在程序中也不能只使用对象,而抛弃了基本数据类型。
3)包装对象只有在基本数据类型需要用对象表示时才使用,包装类并不是用来取代基本数据类型的。