- 浏览: 48671 次
- 性别:
- 来自: 北京
文章分类
最新评论
1.静态导入enum
public enum Spiciness{NOT,MILD,MEDIUM,HOT,FLAMING }
在其他类中应用如果
import static package.Spiciness.*;
那么在直接用NOT就行,不用enum类型修饰enum的实例。
如果enum在默认包里,或者在同一文件里,则无法使用这一特性。
2.enum中添加方法
enum除了不能继承自一个enum,基本可以看成一个常规类。可以有方法,甚至有main方法。
所有的枚举值都是public,static,final
3.switch和enum结合
如: enum Signal{GREEN,YELLOW,RED}
Signal color=Signal.RED;
switch(color){
case Signal.RED: color = Signal.GREEN;
break;
}
4.enum的values()和oridinal
所有enum都继承自ENUM类,但是ENUM类中没有values()方法,它是编译器加上的static方法。
oridinal返回枚举值在枚举类中的顺序。
5.实现,而非继承
enum都继承自java.lang.Enum类,所以不能再多重继承,只能实现一个或多个接口。
6.EnumSet
EnumSet必须和一个enum一起工作
例子:
package enumerated;
public enum AlarmPoints {
STAIR1, STAIR2, LOBBY, OFFICE1, OFFICE2, OFFICE3,
OFFICE4, BATHROOM, UTILITY, KITCHEN
}
package enumerated;
import java.util.*;
import static enumerated.AlarmPoints.*;
import static net.mindview.util.Print.*;
public class EnumSets {
public static void main(String[] args) {
EnumSet<AlarmPoints> points =
EnumSet.noneOf(AlarmPoints.class); // Empty set
points.add(BATHROOM); //1.加单个值
print(points);
points.addAll(EnumSet.of(STAIR1, STAIR2, KITCHEN)); //2.加多个值
print(points);
points = EnumSet.allOf(AlarmPoints.class); //3.加所有值
points.removeAll(EnumSet.of(STAIR1, STAIR2, KITCHEN)); //3.删除多个值
print(points);
points.removeAll(EnumSet.range(OFFICE1, OFFICE4)); //4.删除这个范围内的值
print(points);
points = EnumSet.complementOf(points); //5.去反
print(points);
}
} /* Output:
1.[BATHROOM]
2.[STAIR1, STAIR2, BATHROOM, KITCHEN]
3.[LOBBY, OFFICE1, OFFICE2, OFFICE3, OFFICE4, BATHROOM, UTILITY]
4.[LOBBY, BATHROOM, UTILITY]
5.[STAIR1, STAIR2, OFFICE1, OFFICE2, OFFICE3, OFFICE4, KITCHEN]
7.EnumMap
package enumerated;
import java.util.*;
import static enumerated.AlarmPoints.*;
import static net.mindview.util.Print.*;
interface Command { void action(); }
public class EnumMaps {
public static void main(String[] args) {
EnumMap<AlarmPoints,Command> em =
new EnumMap<AlarmPoints,Command>(AlarmPoints.class);
em.put(KITCHEN, new Command() {
public void action() { print("Kitchen fire!"); } //加入键值对,值为匿名对象
});
em.put(BATHROOM, new Command() {
public void action() { print("Bathroom alert!"); }
});
for(Map.Entry<AlarmPoints,Command> e : em.entrySet()) {
printnb(e.getKey() + ": ");
e.getValue().action(); //调用值对应的对象的方法
}
try { // If there's no value for a particular key:
em.get(UTILITY).action();
} catch(Exception e) {
print(e);
}
}
} /* Output:
BATHROOM: Bathroom alert!
KITCHEN: Kitchen fire!
java.lang.NullPointerException
*///:~
8.常量相关的方法
public enum ConstantSpecificMethod {
DATE_TIME {
String getInfo() { //定义各自不同的行为
return
DateFormat.getDateInstance().format(new Date());
}
},
CLASSPATH {
String getInfo() {
return System.getenv("CLASSPATH");
}
},
VERSION {
String getInfo() {
return System.getProperty("java.version");
}
};
abstract String getInfo();//为每个enum实例定义的抽象方法,也可以定义多个,然后每个实例实现。
public static void main(String[] args) {
for(ConstantSpecificMethod csm : values())
System.out.println(csm.getInfo());
}
}
发表评论
-
对代理模式与Java动态代理类的理解(二转)
2010-09-13 15:18 28471. 代理模式 代理模式的作用是:为其他对象提供一种代理以控制 ... -
20.注解
2010-05-04 22:02 9151.注解 三种内置标准 @Override 确保覆盖超类方 ... -
18.java IO 系统
2010-05-04 21:56 6281.File类 File既可以代表一个文件,又可以是一组 ... -
17.容器的深入研究
2010-05-04 21:52 7901.填充容器 List<String> list ... -
16.数组
2010-05-04 21:51 6111.数组和其他容器的区别效率,类型和保存基本类型的能力。效率是 ... -
15.泛型
2010-05-04 21:50 6921.类型参数 public class Ho ... -
14.类型信息
2010-05-04 21:48 6421.rtti Runtime Type Information ... -
13.字符串
2010-05-04 21:43 6991.String对象不可变string一旦创建则不可改变,任何 ... -
12.通过异常处理错误
2010-05-04 21:38 7531.异常参数所有标准异常类都有两个构造器:一个是默认的,另一个 ... -
10.内部类
2010-05-04 21:08 6761.内部类定义将一个类的定义放在另一个类的定义内部,内部类了解 ... -
16.数组
2010-01-03 23:15 6701.数组和其他容器的区 ... -
5.初始化和清理
2010-01-03 23:14 697这章重点讲了构造器 1. ... -
4.控制执行流程
2010-01-03 23:10 5621.foreach 2.goto 不提倡 3.switch ... -
3.操作符
2010-01-03 23:09 827这章很基础,算术,逻辑,关系操作符,我们都很熟悉。其中需要注意 ... -
2.一切都是对象
2010-01-03 23:07 6421.对象存在什么地方。a.寄存器c和c++允许操作,java不 ... -
9.接口-java笔记
2009-12-21 00:26 6641.抽象类 抽象是普通类 ... -
8.多态--java笔记
2009-12-16 18:01 6461.绑定 定义:将一个方法调用同一个方法主体关联起来称作绑定。 ... -
11.持有对象--java笔记
2009-11-16 00:35 1153又看了java思想的第四版得第11章,记一下关键点留个纪念,呵 ... -
7.复用类
2009-11-04 00:07 623复用包括组合和继承,及中庸之道代理。 1.继承 初 ... -
6.访问权限控制
2009-10-14 01:06 666这一章的有以下这么几点: 1.package:包,名字空间, ...
相关推荐
10. 枚举 11. 类型推断 12. 类型兼容性 13. 高级类型 14. Symbols 15. 迭代器和生成器 16. 模块 17. 命名空间 18. 命名空间和模块的区别 19. 模块解析 20. 声明合并 21. 类型声明 22. JSX 23. 装饰器 24. Mixins 25....
枚举型与结构型的区别 3. 数据类型转换 4. break与continue 5. 访问修饰符 6. 类与对象 7. 数据抽象与过程抽象 8. 属性访问器 (什么是属性访问器?) ppt19. 封装与信息隐藏 10. 装箱与拆箱 (什么是装箱和拆箱?请...
3.枚举类型: 2 4.其他类型: 2 5.类型定义: 2 6.运算符: 3 7.运算符优先级: 3 8.运算符类型自动转换: 3 9.流程控制语句: 3 10.#include语句: 4 11.函数的传址方式: 4 12.默认的形参: 4 13.作用域...
4.1.8 枚举类型... 72 4.2 引用类型... 72 4.2.1 类类型... 73 4.2.2 对象类型... 73 4.2.3 字符串类型... 73 4.2.4 接口类型... 74 4.2.5 数组类型... 74 4.2.6 代表类型... 74 4.3 包装和解包... 74 4.3.1 包装...
3.枚举型与结构型的区别 3. 数据类型转换 4. break与continue 5. 访问修饰符 6. 类与对象 7. 数据抽象与过程抽象 9.属性访问器 10. 封装与信息隐藏 5 11.装箱与拆箱 11. 继承与多态 12. 按值传参与按引用...
19 1.6.7 其他函数成员 .................................................................................................................................... 20 1.6.7.1 构造函数 ...........................
建立枚举类型(Buildiing Enums) .............. 23 概览..... 23 示例..... 23 建立 Complex 对象(Building Complexes) . 25 BStructs 与 BComponents ........................ 25 建立 BComplex 子类对象 .......
元类型.playground 25.控件命名.playground 26.对象判等.playground 27.探究Self的用途.playground 28.类簇.playground 29.动态调用对象(实例).playground 2数据类型.playground 30.文本输出.playground 31.黑魔法...
5 基本语言元素........................................................................................................................................19 5.0 概述.......................................
19.再说索引 20.构造函数和析构函数 21.静态类、静态方法、静态变量 22.方法的重载 23.方法的参数(ref,out,params) 24.类的继承 20.完善我的留言板(2) 21.完善我的留言板(3) 22.完善我的留言板(4) 25.异常处理 26....
19.再说索引 20.构造函数和析构函数 21.静态类、静态方法、静态变量 22.方法的重载 23.方法的参数(ref,out,params) 24.类的继承 20.完善我的留言板(2) 21.完善我的留言板(3) 22.完善我的留言板(4) 25.异常处理 26....
19.再说索引 20.构造函数和析构函数 21.静态类、静态方法、静态变量 22.方法的重载 23.方法的参数(ref,out,params) 24.类的继承 20.完善我的留言板(2) 21.完善我的留言板(3) 22.完善我的留言板(4) 25.异常处理 26....
引用类型..................................................................11 枚举 ...............................................................................12 类与结构 ............................
2.4 通用类型系统和公共语言 规范 ............................................ 26 2.5 小结 ............................................ 27 第3 章 编写软件 ................................ 29 ...
完整版 Java初级教程 Java语言程序设计 第2章 基本数据类型、数组和枚举(共19页).ppt 完整版 Java初级教程 Java语言程序设计 第3章 运算符、表达式、语句(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第4...
1.2.1 预定义类型..................................................................................................................................3 1.2.2 转换........................................
注意:文件较大网盘下载 01.第一讲Welcome.to.C# 02.第二讲变量、运算符、表达式 03.第三讲定义方法与变量作用域 ...09.第九讲枚举类型和结构体 10.第十讲数组和集合 11.第十一讲数组参数 ... 19.第十九讲枚举集合