Java基础——泛型

来源:互联网 发布:linux c fork 编辑:程序博客网 时间:2024/04/29 08:17

每天一丢丢,将自己看视频和书的笔记记录下来,有错误的地方还请大家及时指出,希望菜鸟可以有进步~
今天主要学习的是泛型程序设计。。。。。
自定义泛型可以理解为是一个数据类型的变量或是一个数据类型的占位符
泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用!
泛型在集合中的好处:
1、把运行时出现的问题提前到编译前
2、避免了强制类型转换
泛型应用:
通过<> 来指定容器中元素的类型,什么时候使用泛型:当类中操作的引用数据类型不确定的时候,就可以使用泛型类
格式:T就是自定义申明好的泛型
集合类<类类型> 变量名 = new 集合类<类类型>();
a.声明好泛型类型之后,集合中只能存放特定类型元素
b.泛型类型必须是引用类型(集合不能存储基本数据类型,eg:int)
c.使用泛型后取出元素不需要类型转换.
注意:在泛型中没有多态的概念,两边的数据类型必须要一致!!!
泛型方法:
需求:定义一个函数可以接受任意类型的参数,要求函数返回的数据类型与实参类型一致
当函数中使用了一个不明确的数据类型,那么在函数上就可以进行泛型的定义。
public <泛型的声明> 返回值类型 函数名( 泛型 变量名 ){
//具体实现;
}
在方法上的自定义泛型的具体数据类型是调用该方法的时候传入实参的时候确定的。
使用泛型方法前需要进行泛型声明,使用一对尖括号 <泛型>,声明的位置在static后返回值类型前。当一个类中有多个函数声明了泛型,那么该泛型的声明可以声明在类上。
泛型类:
类上的泛型声明(就是自定义了一个集合对象)
修饰符 class 类名<自定义泛型>{
}
注意:不能直接使用泛型名new一个新的对象。
1、创建对象的时候要指定泛型的具体类型
2、创建对象时可以不指定泛型的具体类型(和创建集合对象一致)。默认是Object,例如我们使用集合存储元素的时候没有使用泛型就是那么参数的类型就是Object
3、类上面声明的泛型只能应用于非静态成员函数,如果静态函数需要使用泛型,那么需要在函数上独立声明。
4、如果建立对象后指定了泛型的具体类型,那么该对象操作方法时,这些方法只能操作一种数据类型。
5、所以既可以在类上的泛型声明,也可以在同时在该类的方法中声明泛型。
如果泛型类有子类,子类指定具体的类型。
泛型接口:
格式:
interface 接口名<声明自定义的泛型>{
}
注意:
1、在接口上自定义泛型的具体数据类型是在实现该接口的时候指定的
2、如果在实现该接口时没有指定具体的数据类型,则默认是Object类型
如果想在创建接口实现类对象的时候指定自定义泛型的具体数据类型,则在创建类对象的时候指定具体的数据类型
附:compareTo方法的比较规则:
1、如果字符串相同返回0;
2、按照字典顺序,第一个字符串比第二个字符串靠前,返回负值;否则返回正值。

1 0
原创粉丝点击