本周初步认识了下java中的枚举与泛型。
先来说一下枚举:
java语言中由关键字enum来定义一个枚举类型。枚举的特点是有限且固定的类,枚举类是再JDK1.5版本中才引入的,存放在java.lang包中。
枚举类型语法:
修饰符 enum 枚举类型名称{
常量1,常量2,.....常量n;
}其中enum声明为枚举类型,程序体定义常量,当需要使用该常量时,可以用“类名.常量”来表示。
下面是枚举类型的一些常用方法:
方法名称
具体含义
使用方法
values()
该方法可以将枚举类型成员以数组的形式返回
枚举类型名称.values()
valueOf()
该方法可以实现将普通字符串转换为枚举实例
枚举类型名称.valueOf("abc")
compareTo()
该方法用于比较两个枚举对象在定义时的顺序
枚举对象.compareTo()
ordinal()
该方法用于得到枚举成员的位置索引
枚举对象.ordinal()
枚举类型中的构造方法:
语法:
修饰符 enum 枚举类型名称{
常量1(参数1,..参数n),...常量n(参数1,...参数n);
private 枚举类型名称([参数1..,参数n]){
//方法体
}
}
从枚举类型构造方法的语法可以看出,无论是无参还是有参,修饰权限都为private。定义一个有参方法后,需要对枚举类型成员相应地使用该构造方法。
泛型:
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
示例:
package FANXING;
public class Simple {
private Object ob;
public Simple(Object ob){
this.ob = ob;
}
public Object getOb() {
return ob;
}
public static void main(String[] args){
Simple simple1=new Simple("jav面向对象");
int age=(int)simple1.getOb();
System.out.println(age);
}
}
上述示例中,实例化Simple对象时,传入的参数是字符串类型,使用这个参数,获取的是int类型,两者并不匹配,程序会抛出异常。这就出现一个安全隐患,而泛型有效地解决 了这一问题。
定义泛型类:
示例:
public class Simple{
private T ob;
public Simple(T ob){
this.ob=ob;
}
public T getOb() {
return ob;
}
public static void main(String[] args){
Simplesimple1 = new Simple("java面向对象");
String info=simple1.getOb();
Simplesimple2 = new Simple(true);
boolean result=simple2.getOb();
}
}
上述示例中,在类名后添加了一个语句,这就是泛型机制。可以将Simple类称为泛型类,同时返回和接收的参数使用T这个类型。最后在主方法中可以使用Simple形式返回一个String类型的对象,使用Simple形式返回一个Boolean类型的对象。