黑马程序员.Android攻城狮.JAVA高新.2.1.Java 高新技术(1)

Java高新技术(1)

---------- android培训、java培训、期待与您交流!----------

1、JDK新特性

        JDK1.5的新特性,可变参数,增强for循环,自动拆箱与装箱,枚举,反射,JavaBean内省,beanutils工具包
        (1) 静态导入:
        普通的import是导入一个类,或者一个包中的所有的类
         静态导入:是导入一个类中的某个静态方法或者所有静态方法。例如导入Math.random()方法,
         实际开发中,我们要引用某个包下的某个类中的静态方法时,为了方便代码书写,JDK1.5提供了静态导入的新特性。
         例如,我们要使用java.lang包下Math类的求最大值方法max()时,可以在类顶端加上如上代码:
         的多个静态方法,或者所有静态方法时,可以全部逐一导入,也可以一次性导入,形如:
         import static java.lang.Math.max;
         之后,若我们要用到这个类下的max()方法,时,就可以不用加上类名了,直接用max(a,b);这种形式。若我们还需要改类下
         import static java,lang.Math.*;
         注意:静态导入是JDK1.5的新特性,1.5之前没有这个特性,所以以后在修改和维护JDK1.5前的程序时,这个要稍作注意。
        (2) 可变参数
        一个方法的参数个数不固定,可变参数的特点:只能出现在参数列表的最后,...位于变量类型和变量名之间,前后有无空格都可以,调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法中以数组的形式访问可变参数。

        (3) 增强for循环
        以上代码可以利用增强for循环修改为:

        其中的集合变量可以为数组或者是实现了iterable接口的集合

2、枚举

        在JDK1.5之前,Java有两种方法定义一个新的类型:类和接口,在一些特殊情况下这两种类型还是不太合适,在JDK1.5之后引入了枚举类型。
        我们可以使用枚举——enmu类型来定义一个新的数据类型,这个数据类型中只有有限个对象,比如一周只有七天,一年只有十二个月等,那么就可以使用枚举来表示这种类型,
        枚举类是一个特殊的类,它一样可以有自己的方法和属性,可以实现一个和多个接口,也可以定义自己的构造器。一个Java源文件中最多只能定义一个public访问权限的枚举类,且该Java源文件也必须和该枚举类的类名相同。但枚举类终究不是普通的类,它与普通类有如下的区别:
        (a) 枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了java.lang.Enum类,而不是继承Object类。其中java.lang.Enum类实现了java.lang.Serializable和 java.lang.Comparable两个接口。
        (b) 枚举类的构造器只能使用private访问控制符,如果省略了其构造器的访问控制符,则默认使用private修饰;如果强制指定访问控制符,则只能指定private修饰符。
        (c) 枚举类的所有实例必须在枚举类中显式列出,否则这个枚举类将永远都不能产生实例。列出这些实例时,系统会自动添加public static final修饰,无序显式添加。
        (d) 所有枚举类都提供一个values方法,该方法可以很方便地遍历所有枚举值。
        枚举类常用的方法:
                protected Object clone():抛出CloneNotSupportedException
                int compareTo(E o):比较此枚举与指定对象的顺序
                boolean equals(Object other):当指定对象等于此枚举常量时,返回true
                protected void finalize():枚举类不能有 finalize 方法
                Class<E> getDeclaringClass():返回与此枚举常量的枚举类型相对应的Class对象
                int hashCode():返回枚举常量的哈希码
                String name():返回此枚举常量的名称,在其枚举声明中对其进行声明
                int ordinal():返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)
                String toString():返回枚举常量的名称,它包含在声明中

                static <T extends Enum<T>> T valueOf(Class<T> enumType, String name):返回带指定名称的指定枚

        举类型的枚举常量

        枚举元素必须放在枚举体的第一行,枚举元素列表的后面要有分号与其他元素分隔。

        带构造方法的枚举:构造方法必须是私有的,只要第一次用到了枚举类,那么其中的构造方法就会被调用,


        其输出结果为:
        two
        two
        one
        实现接口的枚举:枚举可以实现一个或多个接口,实现接口时需要实现接口中所定义的抽象方法。

        带抽象方法的枚举:枚举可以实现接口外,还可以带有抽象方法,每个枚举的对象只要实现了抽象方法就可以。

---------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------

你可能感兴趣的:(java,android,黑马程序员)