Java SE 加强for和枚举

java

lJDK 5.0 新特性

l“JDK 5.0” 的一个重要主题就是通过新增一些特性来简化开发,这些特性包括:

静态导入

自动装包/拆包

for-each循环

可变参数

枚举

泛型

元数据

l使用这些特性有助于编写更加清晰,精悍,安全的代码。


lJDK 1.5 增加的静态导入语法用于导入指定类的某个静态属性值(方法)或全部静态属性值(方法)

l语法:

Import static包名.类名.静态属性|静态方法|*

l静态导入语句使用 import static 语句

导入指定类的单个静态属性:                             

  import static java.lang.System.out

导入指定类静态方法

 import static java.lang.Math.max

导入指定类全部静态属性和方法                                  

     import static java.lang.Math.*






增强for循环

l引入增强for循环的原因:在JDK5以前的版本中,遍历数组或集合中的元素,需先获得数组的长度或集合的迭代器,比较麻烦!

l因此JDK5中定义了一种新的语法——增强for循环,以简化此类操作。增强for循环只能用在数组、或实现Iterator接口的集合类上

l使用 foreach 循环遍历数组和集合元素时, 无须获得数组和集合长度, 无须根据索引来访问数组元素和集合元素, foreach 循环自动遍历数组和集合的每个元素

l语法格式:

•for ( type 变量名:集合变量名 )  { … }

           for(type varName : array | collection){

                  //varName 自动迭代访问每一个元素

            }

l





l使用增强for循环的几个注意事项(以下程序的输出结果?)


int arr[] = new int[5];

for(int num : arr){

num = 1;

}

System.out.println(arr[0]);

------------------------------------------------------------

List<String> list = new ArrayList<String>();

list.add("xxx");

for(String str : list){

str = "yyy";

}

System.out.println(list.get(0));

l


引入:定义一个方法求数组中元素的和



可变参数

l从 JDK 1.5 开始, Java 允许定义形参长度可变的参数,从而允许为方法指定数量不确定的形参

l若在定义方法时, 在最后一个形参的类型后增加三点(…,

...位于变量类型和变量名之间,前后有无空格都可以)则表明该形参可以接受多个参数值, 多个参数值被当成数组传入

l可变形参只能处于形参列表的最后, 所以一个方法最多只能有一个长度可变的形参

l调用包含一个可变形参的方法时, 可以为该形参传入多个参数或一个数组

l调用可变参数的方法时, 编译器为该可变参数隐含创建一个数组, 在方法体中以数组的形式访问可变参数

l


可变参数方法示例代码1



可变参数方法示例代码2

可变参数方法示例代码3



可变参数方法示例代码4


l测试JDK中具有可变参数的类Arrays.asList()方法。分别传多个参、传数组的情况

•注意:传入基本数据类型数组的问题。

l




枚举类 

l为什么需要枚举?

一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,此类问题在JDK5以前采用自定义

带有枚举功能的类解决,Java5以后可以直接使用枚举予以解决。

lJDK 5新增的 enum 关键字用于定义一个枚举类。


枚举类引入

l枚举类练习

   设计一个Student类

   class  Student{

   private String name;

   private Grade grade;

   ……}

  要求:学生的grade只能是a,b,c,d,e五个级别。可以给学生设置成绩,并可以输出学生成绩情况(优,良,中,可,差)















以上是 Java SE 加强for和枚举 的全部内容, 来源链接: utcz.com/z/391477.html

回到顶部