黑马程序员_java学习日记_Java高新技术_枚举

 

----------------------- android培训、java培训java学习型技术博客、期待与您交流! ----------------------

基本数据类型的自动拆箱与装箱:

我们知道基本数据类型都有对应的封装类
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double
blooean Boolean
在Java中把一切都是作为对象看待的,也为基本数据类型设计了对应的包装类,这样更符合面向对象编程的思想。

自动装箱就是 编译器自动把一个基本的数据类型包装为一个对应的封装类型,自动拆箱就是编译器把一个包装类型转变为对应的基本数据类型
int 变为Integer 等
Integer obj1=3;自动装箱
int number1=obj1;自动拆箱

Integer obj2=3;
System.out.print(obj1==obj2);//输出为true
Integer obj3=128;
System.out.print(obj1==obj3);//输出为false
这是Java本身的设计在-128到127之间的相同数值大小的Integer对象都是同一个,这有点数据池的概念。

枚举:

枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。

无论Java出现什么新技术,都是为了解决问题,方便编程的,在没有枚举之前也可以通过普通类的方式实现类似枚举的功能,在类中定义限定能取的值,还可以提供一些方法。枚举的应用方便我们实现这一功能,并提供了一些方法,方便我们调用。、

语法 :
enum 枚举类型名称
和定义一个类和类似

定义一个表示星期几的类可以这样来实现:
enum WeekDay{
SUN,SAT,FRI,THI,WED,TUE,MON;//后面的分号可以带也可以不带
}

枚举类型也可以有构造方法,可以是有参数的也可以是无参数的,构造方法必须放在元素列表的之后,元素都是静态的常量;我们可以通过在元素名称的后面加上()的形式来表示它初始化的时候调用无参数的构造方法,也可以加上参数表示它调用的那个有参数的构造方法。


枚举也可以有抽象方法,也就是说枚举也可以是抽象的,也可以有类似接口的应用

如果枚举只有一个枚举元素就可以当作单列的实现方式

 

----------------------- android培训、java培训java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima

你可能感兴趣的:(黑马程序员_java学习日记_Java高新技术_枚举)