• java中的java5.0的新特性2(J2SE入门22)


    可变长的参数

    使用条件:只在必要的时候进行。同时有参数为数组,就不能使用变长参数,有变长参数,就不能使用数组,不能共存。一个方法最多只能有一个变长参数,而且是最后一个参数。

    <5.0之前>
    public static void main(String[] args){}
    JVM收到数据封装在数组里,然后传入方法

    <5.0之后>
    public static void m(String... s){
          System.out.println("m(String)" +s)
    }
    调用m(String… s)
    for(String s2:s){
         System.out.println(s2)
    }

    格式化输出

    格式化I/O(Formatted I/O)
    java.util.Sacner类可以进行格式化的输入,可以使用控制台输入,结合了BufferedReaderStringTokener的功能。
    增加了类似C的格式化输入输出,简单的例子:
    public class TestFormat{
        public static void main(String[] args){
            Int a = 150000, b = 10
            float c = 5.0101f, d = 3.14f
            System.out.printf("%4d %4d%n", a, b)
            System.out.printf("%x %x%n", a, b)
            System.out.printf("%3.2f %1.1f%n", c, d)
            System.out.printf("%1.3e %1.3e%n", c, d*100)
        }
    }
    输出结果为:
    150000   10
    249f0 a
    5.01 3.1
    5.010e+00 3.140e+02

    类型安全的枚举

    枚举也是一个类型,枚举中的对象只能定义一次并在定义时给其初始化,定义之后不能再改变其值,只能从枚举中选择其一

    enum 枚举名
        枚举值1(..),枚举值2(..).....
    }

    <5.0之前使用模式做出枚举>
    final class Season{
        public static final Season SPRING=new Season()
        public static final Season WINTER=new Season()
        public static final Season SUMMER=new Season()
        public static final Season AUTUMN=new Season()
        private Season(){
        }

    <5.0中使用模式做出枚举>
    enum Season{
        SPRING(..),//枚举值
        SUMMER(..),
        AUTUMN(..),
        WINTER(..)
        ......
    }

    枚举是一个反射关联的典型,反射关联,即在类的定义中有自身类型的属性。
    枚举本质上也是一个类,Enum是枚举的父类。
    枚举中的values()方法会返回枚举中的所有枚举值
    枚举中可以定义方法和属性,最后的一个枚举值要以分号和类定义分开,枚举中可以定义的构造方法。
    枚举可以实现接口,枚举不能有子类也就是final的,枚举的构造方法是private(私有的),枚举中可以定义抽象方法,可以在枚举值的值中实现抽象方法,枚举值就是枚举的对象,枚举默认是final,枚举值可以隐含的匿名内部类来实现枚举中定义抽象方法。

    枚举类(Enumeration Classes)和类一样,具有类所有特性。Season2的父类是java.lang.Enum
    隐含方法:   Season2[] ss=Season2.values();  每个枚举类型都有的方法。enum可以switch中使用(不加类名。 
    switch( s ){
        case SPRING
        …………….
        case SUMMER
        …………….
    }

    枚举的有参构造
    enum Season2{
        SPRING(),-------------------------------逗号
        SUMMER(),-------------------------------逗号
        AUTUMN(),-------------------------------逗号
        WINTER()-------------------------------分号
        private String name
        Season2(String name){
            this.name=name
        }
        String getName(){
            return name
        }
    }
    Season2.SPRING.getName()---------------------
    枚举的高级用法:
    enum Operation{
        ADD{
            public double calculate(double s1,double s2){
                return s1+s2
            }
        }
        SUBSTRACT{
            public double calculate(double s1,double s2){
                return s1-s2
            }
        }
        MULTIPLY{
            public double calculate(double s1,double s2){
                return s1*s2
            }
        }
        DIVIDE{
            public double calculate(double s1,double s2){
                return s1/s2
            }
        }
        public abstract double calculate(double s1 ,double s2)
    }
    有抽象方法枚举元素必须实现该方法。

  • 相关阅读:
    福大软工1816 · 第一次作业
    Python学习
    实验12——指针的基础应用2
    实验11——指针的基础应用
    实验十——一维数组的定义及引用
    实验九——基本数据类型存储及应用总结
    实验八——函数定义及调用总结
    实验七——函数定义及调用总结
    实验六——循环结构程序练习总结
    实验五——循环结构学习总结
  • 原文地址:https://www.cnblogs.com/syxchina/p/2197219.html
Copyright © 2020-2023  润新知