java面向对象基础增强.docx
文本预览下载声明
1 JDK5新特性自动装箱和拆箱泛型增强for循环静态导入可变参数枚举2 枚举枚举概述是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。举例:一周只有7天,一年只有12个月等。回想单例设计模式:单例类是一个类只有一个实例那么多例类就是一个类有多个实例,但不是无限个数的实例,而是有限个数的实例。这才能是枚举类。通过自己定义一个枚举类来演示案例第一版第二版第三版发现自己定义一个枚举类,比较麻烦,所以,java就提供了枚举类供我们使用。格式是:只有枚举项的枚举类public enum枚举类名 {枚举项1,枚举项2,枚举项3…; } 注意事项定义枚举类要用关键字enum所有枚举类都是Enum的子类枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略枚举类可以有构造器,但必须是private的,它默认的也是private的。枚举项的用法比较特殊:枚举(“”);枚举类也可以有抽象方法,但是枚举项必须重写该方法枚举在switch语句中的使用//第一版//这就是枚举类//public enum Direction {//// 枚举项//FRONT, BEHIND, LEFT, RIGHT;// }//第二版//public enum Direction {//// 枚举项//FRONT(前), BEHIND(后), LEFT(左), RIGHT(右);////private String name;////// 默认是private的//private Direction() {//}////private Direction(String name) {//this.name = name;//}////public String getName() {//return name;//}// }//第三版public enum Direction {// 枚举项FRONT(前) {@Overridepublic void show() {System.out.println(前);}},BEHIND(后) {@Overridepublic void show() {System.out.println(后);}},LEFT(左) {@Overridepublic void show() {System.out.println(左);}},RIGHT(右) {@Overridepublic void show() {System.out.println(右);}};private String name;// 默认是private的private Direction() {}private Direction(String name) {this.name = name;}public String getName() {return name;}public abstract void show();}Direction d = Direction.FRONT;System.out.println(d.getName());d.show();3 枚举类中的几个常见方法intcompareTo(E o)String name()int ordinal()String toString() T T valueOf(ClassT type,String name)values() 此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便4 JDK7新特性二进制字面量数字字面量可以出现下划线switch 语句可以用字符串泛型简化异常的多个catch合并try-with-resources 语句8 二进制字面量JDK7开始,终于可以用二进制来表示整数(byte,short,int和long)。使用二进制字面量的好处是,可以使代码更容易被理解。语法非常简单,只要在二进制数值前面加 0b或者0B举例:int x = ob110110 9数字字面量可以出现下划线为了增强对数值的阅读性,如我们经常把数据用逗号分隔一样。JDK7提供了_对数据分隔。举例:int x = 100_1000;注意事项:不能出现在进制标识和数值之间不能出现在数值开头和结尾不能出现在小数点旁边int a = 0b100_100;int b = 0b_100_100;int c = 0b100_100_;float d = 12.34_56f;float e = 12._34_56f;10 switch 语句可以用字符串switch 语句可以用字符串在switch语句中已经演示过了,还可以继续演示一次11 泛型简化泛型简化在集合中讲解泛型的时候已经演示过了,还可以在演
显示全部