-
使用foreach循环遍历数组和集合元素时, 无须获得数组和集合长度, 无须根据索引来访问数组元素和集合元素, forearch 循环自动遍历数组和集合的每个元素
-
语法格式:
for(typevarName: array | collection) {
//varName自动迭代访问每一个元素
}
可变参数:
-
若在定义方法时, 在最后一个形参的类型后增加三点(…), 则表明该形参可以接受多个参数值, 多个参数值被当成数组传入
-
可变形参只能处于形参列表的最后, 所以一个方法最多只能有一个长度可变的形参
-
调用包含一个可变形参的方法时, 可以为该形参传入多个参数或一个数组
枚举类:
在某些情况下, 一个类的对象是有限而且固定的(例如:季节类),这种实例有限而且固定的类, 在Java中被称为枚举类。
例:
枚举类:
1 package com.cyq.Demo2; 2 3 public enum Season { 4 SPRING,SUMMER,AUTUMN,WINTER; 5 }
使用枚举:
package com.cyq.Demo2;
import java.util.Scanner;
import static com.cyq.Demo2.Season.*;
import static java.lang.System.in;
public class Demo1 {
public static void main(String[] args) {
System.out.println("Season.values");
Season[] arr= Season.values();
for (Season s :
arr) {
System.out.println(s.name());
System.out.println(s.ordinal());
System.out.println("--------------");
}
System.out.println(arr);
System.out.println("=============================");
System.out.println("请输入SPRING,SUMMER,AUTUMN,WINTER中的一个:");
Scanner sc=new Scanner(System.in);
Season seacon= Season.valueOf(sc.next());
show(seacon);
System.out.println("请输入0-3之间的数:");
int s=Integer.valueOf(sc.next());
show2(s);
}
public static void show(Season s){
switch (s){
case SPRING:
System.out.println("春天来了!");
break;
case SUMMER:
System.out.println("夏天来了!");
break;
case AUTUMN:
System.out.println("秋天来了!");
break;
case WINTER:
System.out.println("冬天来了!");
break;
default:
System.out.println("输入错误!");
}
}
public static void show2(int season){
switch (season){
case 0:
System.out.println("春天来了!");
break;
case 1:
System.out.println("夏天来了!");
break;
case 2:
System.out.println("秋天来了!");
break;
case 3:
System.out.println("冬天来了!");
break;
default:
System.out.println("输入错误!");
}
}
}
运行效果图:
枚举类和普通类的区别:
-
使用 enum 定义的枚举类默认继承了java.lang.Enum类
-
枚举类的构造器只能使用private访问控制符
-
枚举类的所有实例必须在枚举类中显示列出(”,”分隔,”;”结尾). 列出的事例系统会自动添加publicstatic final 修饰
-
所有的枚举类都提供了一个values方法, 该方法可以很方便地遍历所有的枚举值
(JDK5.0中可以在 switch 表达式中使用枚举类的对象作为表达式, case 子句可以直接使用枚举值的名字, 无需添加枚举类作为限定)
实现接口的枚举类:
-
和普通Java类一样枚举类可以实现一个或多个接口
-
若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式, 则可以让每个枚举值分别来实现该方法