Java中的枚举与泛型

      本周初步认识了下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<T>{
	private T ob;
	public Simple(T ob){
		this.ob=ob;
	}
	public T getOb() {
		return ob;
	}
	public static void main(String[] args){
		Simple<String>simple1 = new Simple<String>("java面向对象");
		String info=simple1.getOb();
		Simple<Boolean>simple2 = new Simple<Boolean>(true);
		boolean result=simple2.getOb();
	}
}

   上述示例中,在类名后添加了一个<T>语句,这就是泛型机制。可以将Simple类称为泛型类,同时返回和接收的参数使用T这个类型。最后在主方法中可以使用Simple<String>形式返回一个String类型的对象,使用Simple<Boolean>形式返回一个Boolean类型的对象。

猜你喜欢

转载自www.cnblogs.com/black-lm/p/9028130.html