5、chapter05泛型、枚举与For语句的简化写法概要.ppt

5、chapter05泛型、枚举与For语句的简化写法概要.ppt

5、chapter05泛型、枚举与For语句的简化写法概要

第五章 泛型、枚举与 for语句的简化写法 浙江工业大学 计算机学院 赵小敏 zxm@ 49:8009 5.1 泛型(genericity) 可提高程序代码的复用性 减少数据的类型转换,以提高代码的运行效率 --在编译时强制使用正确的数据类型 通过给类或接口增加类型参数实现 泛型类和泛型接口的定义 类 [类修饰词列表] class 类名 类型参数列表 [extends 父类名] [implements 接口名称列表]{ 类体 } 接口 [接口修饰词列表] interface 接口名类型参数列表 [extends 接口名称列表]{ 接口体 } 类型参数的定义格式 类型变量标识符 ——等价于:类型参数变量标识符 extends Object 类型变量标识符 extends 父类型 ——表明所定义的类型变量是其父类型的子类型,如: public class AddT extends java.lang.Number{ … } 类型变量标识符 extends 父类型1 父类型2 ... ... 父类型n ——各父类最多仅有1个类,其余为接口 例1:采用第一种形式定义变量类型的泛型程序 public class Add T{ public String sum(T a1, T a2, T a3){ return(a1.toString( ) + a2.toString( ) + a3.toString( )); } // 方法sum结束 public static void main(String args[ ]){ AddInteger b = new AddInteger( ); Integer a1 = new Integer(1); Integer a2 = new Integer(2); Integer a3 = new Integer(3); System.out.println( b.sum(a1, a2, a3) ); } // 方法main结束 } // 类Add结束 类AddT说明 public class Add T等价于 public class Add T extends java.lang.Object 创建Add对象时,采用new Add实际类型,这里实际类型应是类java.lang.Object 的子类,如: AddInteger b = new AddInteger( ); 调用AddInteger的成员方法sum,实际上是调用成员方法 public String sum(Integer a1,Integer a2,Integer a3) 例2:采用第二种形式定义变量类型的泛型程序 interface Interface T extends Number{ public int sum(T a1, T a2, T a3); } // 接口Interface结束 public class AddInterface T extends Number implements Interface T{ public int sum(T a1, T a2, T a3){ int b1 = Value( ); int b2 = Value( ); int b3 = Value( ); return( b1 + b2 + b3 ); } // 方法sum结束 public static void main(String args[ ]){ AddInterfaceInteger b = new AddInterfaceInteger( ); Integer a1 = new Integer(1); Integer a2 = new Integer(2); Integer a3 = new Integer(3); System.out.println( b.sum(a1, a2, a3)); } // 方法main结束 } // 类AddInterface结束 例3:采用第三种形式定义变量类型的泛型程序 class C1{ public void methodA( ){ System.out.print(A); } // 方

文档评论(0)

1亿VIP精品文档

相关文档