版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA 核心技术(中级),刘彬 微博 ,第十讲 5.0新特性,泛型(Generic) For-Each循环 自动装包/拆包(Autoboxing/unboxing) 可变参数(Varargs) 静态导入(StaticImports),泛型(Generic),1.泛型(Generic) C+通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也不得不对他们进行强制得类型转换。猛虎引入了泛型,它允许指定集合里元素的类型,这样你可以得到强类型在编译时刻进行类型检查的好处,List list = new Arr
2、ayList(); list.add(abc); list.add(ddd); list.add(3);,泛型(Generic),/把类写成泛型的好处:把类参数化,不在是唯一的固定的类,根据参数的不同 public class Genericlass /可以有多个类型 E name; K key; /*static E count; public static E getCount(E count) return count; */ /静态属性 静态方法不能用类中定义的泛型参数 ,只有对象才能有泛型标记. public E getName() return name; public void
3、setName(E name) =name; ,泛型(Generic),For-Each循环,2.For-Each循环 For-Each循环得加入简化了集合的遍历。假设我们要遍历一个集合对其中的元素进行一些处理。,voidprocessAll(Collectionc)for(Iteratori=c.iterator();i.hasNext();)MyClassmyObject=(MyClass)i.next();myOcess(); 使用For-Each循环,我们可以把代码改写成: voidprocessAll(Collectionc)for(MyClass
4、myObject:c)myOcess();,For-Each循环,自动装包/拆包(Autoboxing/unboxing),3.自动装包/拆包(Autoboxing/unboxing) 自动装包/拆包大大方便了基本类型数据和它们包装类地使用。 自动装包:基本类型自动转为包装类.(intInteger) 自动拆包:包装类自动转为基本类型.(Integerint) 在JDK1.5之前,我们总是对集合不能存放基本类型而耿耿于怀,现在自动转换机制,inta=3;Collectionc=newArrayList();c.add(a);/自动转换成Integer. Integerb=ne
5、wInteger(2);c.add(b+2); 这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer.,自动装包/拆包(Autoboxing/unboxing),可变参数(Varargs),5.可变参数(Varargs) 可变参数使程序员可以声明一个接受可变数目参数的方法。注意,可变参数必须是函数声明中的最后一个参数。假设我们要写一个简单的方法打印一些对象, util.write(obj1);util.write(obj1,obj2);util.write(obj1,obj2,obj3); 在JDK1.5之前,我们可以用重载来实现,但是这样就需要写很多的重载函数
6、,显得不是很有效。,publicvoidwrite(Object.objs)for(Objectobj:objs)System.out.println(obj);,可变参数(Varargs),静态导入(StaticImports),6.静态导入(StaticImports) 要使用用静态成员(方法和变量)我们必须给出提供这个方法的类。使用静态导入可以使被导入类的所有静态变量和静态方法在当前类直接可见,使用这些静态成员无需再给出他们的类名。,importstaticjava.lang.Math.*;.r=sin(PI*2);/无需再写r=Math.sin(Math.PI); 不过,过度使用这个特
7、性也会一定程度上降低代码地可读性。,静态导入(StaticImports),注释,什么是注释说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描 述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源代码的。在J2SE5.0中可以自 定义注释。使用时在后面跟注释的名字。,注释,J2SE5.0中预定义的注释在J2SE5.0的java.lang包中预定义了三个注释。它们是Override、Deprecated和SuppressWarnings。下面分
8、别解释它们的含义。,注释,Override被Override注释的方法必须在父类中存在同样的方法程序才能编译通过。也就是说只有下面的代码才能正确编译。,注释,Deprecated 这个注释是一个标记注释。所谓标记注释,就是在源程序中加入这个标记后,并不影响程序的编译,但有时编译器会显示一些警告信息,起到提醒作用,这个方法以后是要被删除的,最好别用。,注释,SuppressWarnings 这个世界的事物总是成对出现。即然有使编译器产生警告信息的,那么就有抑制编译器产生警告信息的。 SuppressWarnings注释就是为了这样一个目的而存在的。 要注意的是SuppressWarnings和前两个注释不一样。这个注释有一个属性。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 欧盟碳资产与能源资产相关性及风险对冲:基于市场动态与企业策略的分析
- 欣盛花园房地产项目风险管理:识别、评估与应对策略研究
- 2026年广东机械理论考试试题及答案
- 2026年钳工工艺初级考试试题及答案
- 模糊多类支持向量机算法在不平衡数据分类中的创新与实践
- 樟芝深层发酵多糖对小鼠抗生素相关性腹泻肠道菌群的调节机制探究
- 榄香烯联合白介素 - 2胸腔灌注:恶性胸水治疗的疗效与机制探究
- 足跖腱膜挛缩的护理
- 建筑工程承包合同模版(知识研究或个人学习)
- 2024-2025学年广东省深圳市高一下学期期中语文试题含答案
- 井巷冒顶片帮必讲课
- (国标)挡土墙检验批质量验收记录2
- HAUNI-KLD-2烘丝机设备结构
- GB/T 35451.2-2018埋地排水排污用聚丙烯(PP)结构壁管道系统第2部分:聚丙烯缠绕结构壁管材
- GB/T 29024.4-2017粒度分析单颗粒的光学测量方法第4部分:洁净间光散射尘埃粒子计数器
- GB/T 16769-2008金属切削机床噪声声压级测量方法
- GB/T 12615.2-2004封闭型平圆头抽芯铆钉30级
- 陈阅增普通生物学课件第7章植物的形态与结构
- 第六章旅行社的职能管理课件
- 七下数学相交线与平行线难题及答案
- 港珠澳大桥 课件
评论
0/150
提交评论