第09讲-泛型枚举For语句
时间:2025-04-04
时间:2025-04-04
java课件
Java程序设计视频教程
本讲主题 泛型与枚举For语句主讲教师:黄洪
浙江工业大学计算机学院
2011年
java课件
主要内容泛型 枚举类型 for语句的简化写法
java课件
泛型:看下面的例子,t是什么类型?public class Box<T> { private T t; private void set(T t) { this.t = t; } public T get() { return t; } }
查看运行结果
java课件
泛型泛型的概念 通过给类或接口增加类型参数 类型参数,使得在使用该类时才需要指定 类型参数 类型参数的实际对应的类型,从而可以提高程序的灵活性,防 类型参数 止出现运行时类型错误,并可以避免做数据的强制类型转换。 泛型的实现:在类名和接口名后加入类型参数 泛型的类定义类名 <类型参数列表>
泛型的接口定义接口名 <类型参数列表>
类型参数的格式(三种形式) 类型变量标识符 类型变量标识符 extends 父类型 类型变量标识符 extends 父类型1 &父类型2 &…& 父类型3 类型变量标识符一般用大写字母
java课件
泛型第一种形式等价于:类型变量标识符 extends http://ng.Object 第三种形式中,父类型中只能有一个是类,其他的是接口
在定义类型参数后,在泛型类或接口中可以直接使 用类型参数定义变量。类型参数可以出现在通常要放置具体类型名的非静态声 明中。但不能用类型参数来创建对象和数组(new T(), new T[10]错)。
对实际类型参数的要求:格式一可以是任何实际类型 格式二必须是对应父类的子类型 格式三必须是对应父类型的子类型,且实现了所有父类 型的接口
java课件
泛型示例
第一种形式的类型参数。相当于 T extends http://ng.Object
public class TestGenericity <T> 用类型参数指定方法参数的类型 { public String sum(T a1,T a2) 使用该类型具有的方法。 { 此处的类型是Object。 return(a1.toString()+a2.toString()); } public static void main(String [] args) {
实例化时,指定实际类型参数, 实际类型参数必须是泛型类型参 数的子类型。
TestGenericity<Integer> tg=new TestGenericity<Integer>(); Integer b1=new Integer(1); Integer b2=new Integer(2); System.out.println (tg.sum(b1,b2)); } }
调用泛型类的方法。
java课件
能用类型参数声明数组,但不能创建数组class TestGen <T> { T [] arg; //用类型参数声明数组,但 T[] arg=new T[10];不行 public TestGen(T [] a) { arg=a; } public static void main(String [] args) { Integer [] iarray=new Integer[3]; iarray[0]=2; iarray[1]=4; iarray[2]=6; TestGen<Integer> tgI=new TestGen<Integer>(iarray); for(int i=0;i<tgI.arg.length;i++) System.out.println (tgI.arg[i]); TestGen<String> tgS=new TestGen<String>(args); for(int i=0;i<tgS.arg.length;i++) System.out.println (tgS.arg[i]); } }
运行该程序
java课件
枚举类型枚举类型是种特殊的类,通常是一些已知取值的集合。 枚举的基本定义格式为: 枚举类型修饰词列
表 enum 枚举类型名 { 枚举常量列表 } public enum EnumSeason { 如: 春季, 夏季, public enum EnumSeason 秋季, { 冬季 春季,夏季,秋季,冬季 } }
java课件
枚举类型的声明枚举类型修饰词可以有①注解: ②访问修饰符;③static;④严格浮点运算 strictfp四类。顶层枚举类的访问修饰符要么是public,要么省略;嵌套枚举声 明可以使用任何访问修饰符。static总是省略掉。也不能声明为abstract。 枚举类型默认继承了Enum,所以不能再继承其他东西。
枚举类型修饰词列表 enum 枚举类型名 { 枚举常量列表[;枚举常量的成员定义; 构造方法(); 其他方法;]
}枚举常量必须是合法的标识符。如果一个枚举声明除了枚举常量还声明了其 他东西(如方法),则枚举常量列表必须以一个分号结束。枚举常量具有隐 式的静态性质。
java课件
枚举类型的声明举例:扑克牌花色enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES; Public static int getSize() { return 4; } }
enum Suit { CLUBS,DIAMONDS,HEARTS,SPADES; Public static int getSize() { return 4; } }
java课件
枚举类举例:Planet1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. public enum Planet { MERCURY (3.303e+23, 2.4397e6), VENUS (4.869e+24, 6.0518e6), EARTH (5.976e+24, 6.37814e6), MARS (6.421e+23, 3.3972e6), JUPITER (1.9e+27, 7.1492e7), SATURN (5.688e+26, 6.0268e7), URANUS (8.686e+25, 2.5559e7), NEPTUNE (1.024e+26, 2.4746e7); //枚举常量,带有两个属性mass和radius private final double mass; // 单位:千克 private final double radius; // 单位:米 Planet(double mass, double radius) { //构造方法 this.mass = mass; this.radius = radius; } private double mass() { return mass; } private double radius() { return radius; }
java课件
枚举类举例18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. // 万有引力常数 public static final double G = 6.67300E-11; double surfaceGravity() { return G * mass / (radius * radius); } double surfaceWeight(double otherMass) { return otherMass * surfaceGravity(); } public static void main(String[] args) { double earthWeight = Double.parseDouble(args[0]); double mass = earthWeight/EARTH.surfaceGravity(); for (Planet p : Planet.values()) System.out.printf("Your weight on %s is %f%n", p, p.surfaceWeight(mass)); } }
java课件
枚举类型的使用可以定义枚举类型的变量和数组,形式和定 义其他类型的变量一样。如:Suit s; Suit [] sa;
< …… 此处隐藏:2715字,全部文档内容请下载后查看。喜欢就下载吧 ……上一篇:毛泽东介绍赛福鼎入党
下一篇:初中英语感叹句专项练习