- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
新特性介绍
Java 新特性介绍
Generic Types
Autoboxing
Enhanced for loop
Enumerated types
Static Import
Generic Types
C++ 中的泛型
先前撰写 C++ 时,还没有泛型(Generic types)的字眼出现,最多是使用 template 来达成对不同型别的支持。像是:
template class Type class Stack { Type st[MAX]; int t;
public: void push(Type v); // other code
}; Stack s; // declare
不过在 C++ STL (Standard Template Library) 出现,各个 C++ 编译器相继支持后,泛型一词才在信息界中广为流传。STL 提供了字符串、容器、算法等众多功能,使得 C++ 增色不少,其中泛型是相当重要的概念。无论是各种类别,都可以放在容器之中,并且使用算法函式库来处理。例如:
vectorstring *dirs = new vectorstring; // data
list addSomeData(dirs); sort(dirs-begin(), dirs-end()); // sort list
typedef vectorstring::iterator iter; typedef string::size_type
size_type; for (iter it = dirs-begin(); it != dirs-end(); it++) {
size_type dpos = (*it).find_last_of(.); // find . string fileName =
(*it).replace(dpos + 1, 3, txt); //replace coutRead
(*it) and create fileName; }
C++ 有泛型的出现,很大一个原因是为了要处理各种不同的型别,包括了 STL 中新增和使用者自行定义的部份。和 C++ 不同的是,Java 一开始并没有这样的设计,因为 Java 所有的对象都有共同的祖先:java.lang.Object,所以 Java 中的函式若要处理多型别时,只需适当地定义参数和(或)传回值为 Object 即可,这正是多型的彻底应用之一。反之 C++ 中的类别没有这关的关系,因此泛型在 C++ 中就显得特别重要。
不过在这边有些缺点。因为 C++ 的泛型是使用 template 来达成的,而 template 会在遇到不同型别时产生相对应的副本。例如 Type add(Type t, Type s) 这项函式定义会在 add(4, 1) 时出现 int add(int, int) 的程序代码,并在 add(1.1, 2.2) 时出现 float add(float, float) 的程序代码,也就是整个整式因为这个关系,而变得愈来愈肥大。
Java 中的泛型
Java 1.5 中已经支持泛型了。目前主要在 java.util 中的类别有比较多的例子,另外还有在 java.lang.Comparable, java.lang.Class, java.lang.Enum 及其相关类别。底下是用 List 和 Vector 来测试泛型:
import java.util.*; public class GenericTest { public static void
main(String[] args) { int size = 6; ListInteger list = new
VectorInteger(); for (int i = 0; i size; i++) { list.add(new
Integer(size - i)); } for (int i = 0; i size; i++) {
System.out.print(list.get(i).intValue() + -); } } } 执行结果: 6-5-4-3-2-1-
泛型在此所带来的好处是只要在宣告时我们指定好类别,那么接下来后面的程序中它会自动帮我们转型, 并且也会检查后续加入容器中的对象是否可转型成我们指定的类别。上例中,如果增加一行 list.add(test); ,那么在编译时就会出现错误,会说 cannot find symbol : method add(java.lang.String) 。这使得原本放在执行阶段才会检查出来的问题,提升到了编译时期。降低了 bug 出现的机会,也让程序设计师在除错上方便许多。另外 Ja
您可能关注的文档
最近下载
- 电路电流练习.doc VIP
- 安全生产标准重大危险源管理人员培训记录.docx VIP
- 商业写字楼智能化初步设计在2025年的智能化物业管理系统评估报告.docx
- DB32_T 4342-2022工业企业全过程环境管理指南.docx VIP
- 传感器数字式传感器详解.ppt VIP
- 马工程外国文学史第一章古代文学.pptx VIP
- 低空经济行业市场前景及投资研究报告:Joby,Archer,国内eVTOL产业.pdf VIP
- 《数据可视化技术》课件.ppt VIP
- Unit 1 Helping at home 第5课时 Part B Let’s learn&Listen and chant(教学设计)英语人教PEP版四年级上册.pdf
- 《普通遗传学》第9章近亲繁殖和杂种优势.ppt
文档评论(0)