欢迎来到天天文库
浏览记录
ID:42998345
大小:275.00 KB
页数:28页
时间:2019-09-27
《15Java视频教程-泛型枚举》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Java程序设计视频教程本讲主题:泛型与枚举主讲教师:黄洪主要内容泛型类枚举类型for语句的简化写法泛型:看下面的例子,t是什么类型?publicclassBox{privateTt;privatevoidset(Tt){this.t=t;}publicTget(){returnt;}}查看运行结果泛型泛型的概念通过给类或接口增加类型参数,使得在使用该类时才需要指定类型参数的实际对应的类型,从而可以提高程序的灵活性,防止出现运行时类型错误,并可以避免数据的类型转换。泛型的实现:在类名和接口名后加入类型参数泛型
2、的类定义类名<类型参数列表>泛型的接口定义接口名<类型参数列表>类型参数的格式(三种形式)类型变量标识符类型变量标识符extends父类型类型变量标识符extends父类型1&父类型2&…&父类型3类型变量标识符一般用大写字母泛型第一种形式等价于:类型变量标识符extendsjava.lang.Object第三种形式中,父类型中只能有一个是类,其他的是接口在定义类型参数后,在泛型类或接口中可以直接使用定义的类型变量。类型参数可以出现在通常要放置具体类型名的非静态声明中。但不能用类型参数来创建对象和数组。对实际类型参
3、数的要求:格式一可以是任何实际类型格式二必须是对应父类的子类型格式三必须是对应父类型的子类型,且实现了所有父类型的接口泛型示例publicclassTestGenericity{publicStringsum(Ta1,Ta2){return(a1.toString()+a2.toString());}publicstaticvoidmain(String[]args){TestGenericitytg=newTestGenericity();Integerb1=newInt
4、eger(1);Integerb2=newInteger(2);System.out.println(tg.sum(b1,b2));}}第一种形式的类型参数。相当于Textendsjava.lang.Object用类型参数指定方法参数的类型使用该类型具有的方法。此处的类型是Object。实例化时,指定实际类型参数,实际类型参数必须是泛型类型参数的子类型。调用泛型类的方法。能用类型参数声明数组,但不能创建数组classTestGen{T[]arg;//用类型参数声明数组,但T[]arg=newT[10];不行p
5、ublicTestGen(T[]a){arg=a;}publicstaticvoidmain(String[]args){Integer[]iarray=newInteger[3];iarray[0]=2;iarray[1]=4;iarray[2]=6;TestGentgI=newTestGen(iarray);for(inti=0;itgS=new
6、TestGen(args);for(inti=0;i7、举常量的成员定义;构造方法();其他方法;]}枚举类型修饰词可以有①注解:②访问修饰符;③static;④严格浮点运算strictfp四类。顶层枚举类的访问修饰符要么是public,要么省略;嵌套枚举声明可以使用任何访问修饰符。static总是省略掉。也不能声明为abstract。枚举类型默认继承了Enum,所以不能再继承其他东西。枚举常量必须是合法的标识符。如果一个枚举声明除了枚举常量还声明了其他东西(如方法),则枚举常量列表必须以一个分号结束。枚举常量具有隐式的静态性质。枚举类型的声明举例:扑克牌花色enumS8、uit{CLUBS,DIAMONDS,HEARTS,SPADES;PublicstaticintgetSize(){return4;}}enumSuit{CLUBS,DIAMONDS,HEARTS,SPADES;PublicstaticintgetSize(){return4;}}枚举类举例:PlanetpublicenumPlanet{MERCURY(3.
7、举常量的成员定义;构造方法();其他方法;]}枚举类型修饰词可以有①注解:②访问修饰符;③static;④严格浮点运算strictfp四类。顶层枚举类的访问修饰符要么是public,要么省略;嵌套枚举声明可以使用任何访问修饰符。static总是省略掉。也不能声明为abstract。枚举类型默认继承了Enum,所以不能再继承其他东西。枚举常量必须是合法的标识符。如果一个枚举声明除了枚举常量还声明了其他东西(如方法),则枚举常量列表必须以一个分号结束。枚举常量具有隐式的静态性质。枚举类型的声明举例:扑克牌花色enumS
8、uit{CLUBS,DIAMONDS,HEARTS,SPADES;PublicstaticintgetSize(){return4;}}enumSuit{CLUBS,DIAMONDS,HEARTS,SPADES;PublicstaticintgetSize(){return4;}}枚举类举例:PlanetpublicenumPlanet{MERCURY(3.
此文档下载收益归作者所有