1. 自定义枚举类
-
枚举:变量的值只限于列举出的值得范围内,相当于单例模式的扩展
-
自定义枚举类:分为无参构造枚举类、有参构造枚举类、含抽象方法枚举类三种;含抽象方法的枚举类在创建对象时使用匿名内部类
-
有参构造枚举类
public class Week { public static final Week MON = new Week("星期一"); public static final Week MON = new Week("星期二"); ...; private String name; public String getName() { return name; } private Week(String name) { this.name = name; } }
2. enum关键字
-
enum关键字:为JDK1.5后加入,用于定义枚举类/* 方式一:相当于无参构造模式 */ public enum Week { MON,TUE,WED,...; } /* 方式二:相当于有参构造模式 */ public enum Week { MON("星期一"),TUE("星期二"),WED("星期三"),...; private String name; private Week(String name) { this.name = name; } } /* 方式三:相当于含抽象方法模式 */ public enum Week { MON() { void show(){ ... } }, TUE() { void show(){ ... } }, WED() { void show(){ ... } }, ...; abstract void show(); } -
enum类注意事项- 所有
enum关键字定义的类都是Enum类的子类 - 枚举类第一行必须是枚举项;后面无内容时,末尾的分号可以省略
- 枚举类构造器必须且默认为
private - 枚举类可以有抽象方法,但枚举项必须重写抽象方法
- 枚举类典型应用:
switch语句
- 所有
3. Enum类
Enum类:java.lang.Enumint ordinal():返回枚举项的序号,序号从0开始int compareTo():比较枚举项之间的顺序,本质为比较序号String name():获取枚举对象的名称String toString():获取枚举对象的字符串形式static <T extends Enum<T>> valueOf(Class<T> enumType, String name):返回指定枚举类型中名称为name的对象T[] values():返回所有枚举项组成的数组
4. 基本数据类型与包装类对应关系
byte>>Byteshort>>Shortint>>Integerlong>>Longfloat>>Floatdouble>>Doublechar>>Characterboolean>>Boolean
5. Integer类
Integer类:java.lang.Integerstatic String toBinaryString(int i):获取二进制字符串;类似有toHexSting()、toOctalString()int intValue():将包装类转为基本数据类型Integer(int value):使用value构造新对象Integer(String s):使用s构造对应值的对象Integer.MAX_VALUE:Integer类型的最大值Integer.MIN_VALUE:Integer类型的最小值int类型转为String类型- 与
""拼接或String.valueOf(int i); new Integer().toString();或Integer.toString();
- 与
String类型转为int类型new Integer(String s).intValue();Integer.parseInt(String s);
- 除
char的包装类之外,其它类都有parseX()方法 - JDK5具有自动装箱与自动拆箱特性;但对象为
null时,不能使用该特性,会出现空指针异常 - 当使用int的字面值常量进行初始化时,若值小于
127,则对象为同一个对象,该对象存放在常量池