java-jdk-6学习笔记章-(十)

上传人:小** 文档编号:57361425 上传时间:2018-10-21 格式:PPT 页数:18 大小:200.52KB
返回 下载 相关 举报
java-jdk-6学习笔记章-(十)_第1页
第1页 / 共18页
java-jdk-6学习笔记章-(十)_第2页
第2页 / 共18页
java-jdk-6学习笔记章-(十)_第3页
第3页 / 共18页
java-jdk-6学习笔记章-(十)_第4页
第4页 / 共18页
java-jdk-6学习笔记章-(十)_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《java-jdk-6学习笔记章-(十)》由会员分享,可在线阅读,更多相关《java-jdk-6学习笔记章-(十)(18页珍藏版)》请在金锄头文库上搜索。

1、第11章,列举型态 常数设置与列举型态 定义列举型态,常数设置,可使用接口来定义操作时所需的共享常数,public interface ActionConstants public static final int TURN_LEFT = 1;public static final int TURN_RIGHT = 2;public static final int SHOT = 3; ,常数设置,public void someMethod() doAction(ActionConstants.TURN_RIGHT);public void doAction(int action) swit

2、ch(action) case ActionConstants.TURN_LEFT:System.out.println(“向左转“);break;case ActionConstants.TURN_RIGHT:System.out.println(“向右转“);break;case ActionConstants.SHOOT:System.out.println(“射击“);break; ,常数设置,使用类别来宣告的话如果常数只是在类别内部使用的话,就宣告其为“private”或是“protected”就可以了 宣告为类别外可取用的常数,通常是与类别功能相依的常数,public class

3、CommandTool public static final String ADMIN = “onlyfun.caterpillar.admin“;public static final String DEVELOPER =“onlyfun.caterpillar.developer“;public void someMethod() / ,列举型态入门,要定义列举型态是使用“enum”关键词列举型态骨子里就是一个类别,所以您编译完成后,会产生一个Action.class档案,public enum Action TURN_LEFT,TURN_RIGHT,SHOOT ,列举型态入门,publ

4、ic class EnumDemo public static void main(String args) doAction(Action.TURN_RIGHT);public static void doAction(Action action) switch(action) case TURN_LEFT:System.out.println(“向左轉“);break;case TURN_RIGHT:System.out.println(“向右轉“);break;case SHOOT:System.out.println(“射擊“);break; ,列举型态入门,doAction()参数列

5、的型态是Action 如果对doAction()方法输入其它型态的自变量,编译程序会回报错误 如果您在“switch“中加入了不属于Action中列举的值,编译程序也会回报错误,列举型态入门,.public static void doAction(Action action) switch(action) case TURN_LEFT:System.out.println(“向左转“);break;case TURN_RIGHT:System.out.println(“向右转“);break;case SHOOT:System.out.println(“射击“);break;case STO

6、P: /Action中没有列举这个值System.out.println(“停止“);break; .,unqualified enumeration constant name required case STOP:,列举型态入门,可以在一个独立的档案中宣告列举值,或是在某个类别中宣告列举成员,private enum InnerAction TURN_LEFT, TURN_RIGHT, SHOOT;public static void main(String args) doAction(InnerAction.TURN_RIGHT);public static void doAction

7、(InnerAction action) ,列举型态入门,列举型态本质上还是个类别 范例11.5的列举宣告方式有些像在宣告内部类别(Innerclass) 编译产生EnumDemo2$InnerAction.class与EnumDemo2$1.class,深入列举型态,定义列举型态时其实就是在定义一个类别 只不过很多细节由编译程序帮您补齐了 某些程度上“enum“关键词的作用就像是“class“或“interface“ 定义出来的型态是继承自java.lang.Enum类别,深入列举型态,列举的成员 预设为“final”,所以无法改变常数名称所设定的值 也是“public”且“static”的

8、成员,可以透过类别名称直接使用它们,深入列举型态,Object继承下来 toString()方法被重新定义了,可以让您直接取得列举值的字符串描述 values()方法可以让您取得所有的列举成员实例,并以数组方式传回 静态valueOf()方法可以让您将指定的字符串尝试转换为列举实例 可以使用compareTo()方法来比较两个列举对象在列举时的顺序,深入列举型态,定义列举型态时也可以定义方法,public enum DetailAction TURN_LEFT, TURN_RIGHT, SHOOT;public String getDescription() switch(this.ordin

9、al() case 0:return“向左转“;case 1:return“向右转“;case 2:return“射击“;default:return null; ,深入列举型态,可以为列举加上建构方法(Constructor) 不得为公开的(public)建构方法 避免粗心的程序人员直接对列举型态实例化,public enum DetailAction2 TURN_LEFT(“向左转“), TURN_RIGHT(“向右转“), SHOOT(“射擊“);private String description;/不公开的建构方法private DetailAction2(String descri

10、ption) this.description = description;public String getDescription() return description; ,深入列举型态,在定义列举值时也可以一并实作接口,public interface IDescription public String getDescription(); ,public enum DetailAction3implements IDescription TURN_LEFT(“向左转“), TURN_RIGHT(“向右转“), SHOOT(“射击“);private String descriptio

11、n;/不公开的建构方法private DetailAction3(String description) this.description = description;public String getDescription() return description; ,Value-Specific Class Bodies,public enum MoreActionimplements IDescription TURN_LEFT /实作接口上的方法public String getDescription() return“向左转“;, /记得这边的列举值分隔使用,TURN_RIGHT /

12、实作接口上的方法public String getDescription() return“向右转“;, /记得这边的列举值分隔使用,SHOOT /实作接口上的方法public String getDescription() return“射击“; /记得这边的列举值结束使用; ,Value-Specific Class Bodies,public enum MoreAction2 TURN_LEFT /实作抽象方法public String getDescription() return“向左转“;, /记得这边的列举值分隔使用,TURN_RIGHT /实作抽象方法public String getDescription() return“向右转“;, /记得这边的列举值分隔使用,SHOOT /实作抽象方法public String getDescription() return“射击“; /记得这边的列举值结束使用;public abstract String getDescription(); ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号