JDK5后的新特性简介

新特性

自动拆装箱

泛型

增强for

静态导入

可变参数

枚举

增强for:

for(元素的数据类型 变量:数组或者collection集合){

使用变量即可,该变量就是元素

}

(要遍历的数组或集合必须是实现Interable接口的)

好处:

简化了数组和集合的遍历

弊端:

增强for的目标不能为null,不支持遍历时修改

如何解决呢?

对增强for的目标先进行不为null的判断然后使用,增强for其实就是用来替代迭代器的。

List<String> list=null

if(list!=null){

for(String s: list){

System.out.println(s);

}

}

静态导入:

格式:

import static 包名...类名,方法名(import static java.lang.Math.abs)

可以直接导入到方法级别

注意事项:

方法必须是静态的

如果有多个不同名的静态方法,容易不知道使用谁?这个时候要使用必须加前缀。由此可见 意义不大,所以一般不用,但是要能看懂

可变参数及其使用:

概述:

定义方法的时候不知道该定义多少个参数

格式:

修饰符返回值类型 方法名(数据结构。。。变量名){ }

注意:

这里的变量其实是一个数组

如果一个方法有可变参数,并且有多个参数,那么可变参数肯定在最后一个

public static int sum(int ... a){

int s=0;

for(int x : a){

s+=x;

}

return s;

}

Array工具类有一个方法把数组转到集合

public static <T> List <T> asList(T...a)

eg:把String strArray={"hello","world","java"} 转到集合

1.List<String> list=Arrays.asList(strArray);

2.List<String> list=Arrays.asList("hello,"world","java");

注意事项:

虽然可以把数组转成集合,但是集合的长度不能改变

练习:

A:集合的嵌套遍历

B:产生10个1~20之间的随机数,要求随机数不能重复

C:键盘录入多个数据,以0结束,并在控制台输出最大值

要求掌握:集合存储元素,加入泛型,并可以使用增强for遍历

面向对象思想:

1.有哪些类呢

2.每个类有哪些东西呢

3.类与类之间的关系是什么呢

分包:

A:功能划分

B:模块划分

C:先按模块划分,再按功能划分

猜你喜欢

转载自blog.csdn.net/qq_40935960/article/details/94958802