黑马程序员java培训就业班笔记day18(泛型、map集合)总结

黑马程序员java培训就业班笔记day18(泛型、map集合)总结

ID:35315451

大小:61.16 KB

页数:8页

时间:2019-03-23

黑马程序员java培训就业班笔记day18(泛型、map集合)总结_第1页
黑马程序员java培训就业班笔记day18(泛型、map集合)总结_第2页
黑马程序员java培训就业班笔记day18(泛型、map集合)总结_第3页
黑马程序员java培训就业班笔记day18(泛型、map集合)总结_第4页
黑马程序员java培训就业班笔记day18(泛型、map集合)总结_第5页
资源描述:

《黑马程序员java培训就业班笔记day18(泛型、map集合)总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Day18总结1、泛型类:在写容器之前想要容器中要存什么?所以要先写好泛型Eg:TreeSetts=newTreeSet();有了泛型后强制转换就没有用Eg:publicclassPersonimplementsComparator{}对于下面覆盖的它的compare方法就不用强制转换了。Publicintcompare(Personp){}这里就不用在做强制转换了。实现代码:Publicstaticvoidmain(String[]args){Toolt=newTool();t.setObject(newCat());t

2、.setObject(newDog());这时编译会出现没问题,但是运行时会出现错误,因为发生了类型转换异常,dog不能转换成Cat。Catc=(Cat)t.getObject();Toolt=newTool();t.setObject(new Cat());此时就不用强转了t.setObject(newDog()):此时编译就失败,把运行时的异常转到编译时候。}ClassCat{}ClassDog{}/*ClassTool{PrivateObjectobj;PublicvoidsetObject(Objectobj){This.obj=obj;}P

3、ublicObjectgetObject(){Returnobj;}}*/改进后Class Tool{PrivateTt;PublicvoidsetObject(Tt){This.t=t;}PublicTgetObject(){Returnt;}}总结:这就是将泛型定义在类上,这个类称为泛型类,是一种替代Object类的一种技术,因为Object类有自动类型提升和转换,泛型已经替代它做了,编译时期更安全,省去了强转的麻烦。什么时候使用泛型类?当类中要操作的引用数据类型不确定的时候,以前使用的是共性类型Object现在可以使用泛型来解决,比Object更为安全。1、

4、泛型方法:既然类中的方法操作类型不确定,其实可以将泛型定义在方法上。实现代码:Toolt=newTool2>();T.show(newInteger(5));编译失败,因为类型不一致。Tool2t1=newTool2();这样便可以操作Integer类型的对象了。T.show();ClassTool2{显示对象的打印结构,可是对象不确定,所以使用Object,而现在可以使用泛型解决。voidshow(Wobj){Sop(obj);}当静态方法的时候,如果方法是静态的是无法访问类上定义的泛型的

5、,如果该方法还需要泛型,必须将泛型定义在方法上,StaticvoidstaticMethod(Yt){}泛型定义在方法上时只能放在返回值的前面和修饰符的后面}什么时候使用泛型方法?当方法操作的引用数据类型不确定的时候就使用方法。2、泛型接口:实现代码:InterfaceInter{voidshow(Tt);}ClassInterImplimplementsInter{Publicvoidshow(Stringstr){Sop(str);}}不明确的时候用上面这种,但是当我们明确了类型时候使用下面的这种情况ClassInterImplim

6、plementsInter{Publicvoidshow(Ww){}}Publicstaticvoidmain(String[]args){NewInterImpl().show("hehe");}3、泛型通配符:不带泛型也是可以的,因为新的可以兼容前面的,因为泛型擦除之后它还是Object注意区分Tt代表某一种实现代码:Publicstaticvoidmain(String[]args){ArrayListal=newArrayList();Al.add(newStudent("lisi",21));Al.add(newStu

7、dent("lisi2",22));Al.add(newStudent("lisi3",23));ArrayListal2=newArrayList();Al.add(newStudent("lisiso",23));Al.add(newStudent("lisiss",23));Al.add(newStudent("lisisdsdf",23));ArrayListal3=newArrayList();printCollection(a1);printCollection(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。