本周初步认识了下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类型的对象。