枚举
JDK1.5引入了枚举类型,枚举类型的定义包括枚举声明和枚举体,格式如下
enum 枚举名{
枚举体;
}
不使用枚举类型示例:
/**
* 不使用枚举类型
*/
public class Myseason {
public static final int SPRING = 0;
public static final int SUMER = 1;
public static final int AUTMN = 2;
public static final int WINTER = 3;
public static void main(String[] args) {
System.out.println(Myseason.SPRING);
}
}
创建枚举类型示例:
/**
* 枚举类型的创建
*/
public class TestEnum01 {
public static void main(String[] args) {
System.out.println(Season.SPRING);
}
}
enum Season{
SPRING,SUMER,AUTMN,WINTER
}
所有枚举类型的隐性地继承自:java,lang.Enum。枚举实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,它们默认都是public static final 修饰的,可以直接通过枚举类型名使用他们
注意:
1》当你需要定义一组常量是,可以使用枚举类型;
2》尽量不要使用枚举的高级特性,事实上高级特性都可以使用普通类来实现,没有必要引入枚举,增加 程序的复杂性。
枚举的使用:
import java.util.Random;
/**
* 枚举类型的使用(switch语句,for-each增强循环)
*/
public class TestEnum02 {
public static void main(String[] args) {
//枚举的遍历:
for (Week k:Week.values()){//for-each:增强循环
System.out.println(k);
}
//switch语句:
int a = new Random().nextInt(7);
switch (JusticeLeague.values()[a]){
case Batman:
System.out.println("正联的首脑");
break;
case Superman:
System.out.println("正联最强战力");
break;
case WonderWoman:
System.out.println("正联神秘侧担当");
break;
case Cyborg:
System.out.println("正联科技侧担当");
break;
case TheFlash:
System.out.println("正联吉祥物");
break;
case Aquaman:
System.out.println("正联的莽夫");
break;
case GreenArrowman:
System.out.println("正联边缘人物");
break;
}
}
}
enum JusticeLeague{
Batman,Superman,WonderWoman,TheFlash,Cyborg,Aquaman,GreenArrowman
}
enum Week{
星期一,星期二,星期三,星期四,星期五,星期六,星期天
}
递归遍历目录结构和树状结构
使用递归算法,以树状结构展示目录树:
import java.io.File;
/**
* 使用递归算法,以树状结构展示目录树结构
*/
public class TestFile05 {
public static void main(String[] args) {
File f = new File("E:/java练习");
printFile(f,0);
}
/*(1)打印文件信息
* (2)打印file文件名
* (3)层次数:实际上就是第几次调用递归算法*/
static void printFile(File file,int level){
//打印层次数:
for(int i=0;i<level;i++){
System.out.println("-");
}
//输出文件名:
System.out.println(file.getName());
//如果file是目录,则获取子文件列表,并对每个文件进行相同的操作:
if(file.isDirectory()){
File[] files = file.listFiles();
for(File temp:files){
//递归调用方法:注意等级+1
printFile(temp,level+1);
}
}
}
}