java_强化技术训练

 

 

for-each循环:

  • 使用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类一样枚举类可以实现一个或多个接口

  • 若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式, 则可以让每个枚举值分别来实现该方法

 

posted @ 2020-09-06 18:02  冬了  阅读(181)  评论(0编辑  收藏  举报