黑马程序员_jdk1.5新特性

 

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

一、静态导入(import static)

1.import 语句可以导入一个类或某个包中的所有类

2.import static 语句导入一个类中的某个静态方法或所有静态方法,还可以静态字段

import static java.lang.Math.*;

public class StaticInput {

    public static void main(String[] args) {

        //下的静态方法和静态字段是Math类的

        System.out.println(abs(-5));

        System.out.println(PI);

    }

}

二、可变参数

特点:

1.只能出现在参数列表的最后

2.“...”位于变量类型和变量名之间,前后有无空格都可以

3.调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数

//可变参数放入最后,且仅有一个

    public static void sum(String s,int... num)

    {

        System.out.println(s);

        int sum=0;

        for(int i:num)

        {

            sum+=i;

        }

        System.out.println(sum);

    }

    public static void main(String[] args)

    {

        //以下三种方式均可

        //prams.sum("a",new int[]{1,2,3});

        int[] arr={1,2,3};

        sum("Em", arr);

        System.out.println("----------");

        sum("b",1,2,3);

}

三、增强for循环

语法:

For(type 变量名:集合变量名){...}

注意:

1.迭代变量必须在()中定义

2.集合变量可以是数组或实现了Iterable接口的集合类

List<String> arrs=new ArrayList<String>();

        arrs.add("Em");

        arrs.add("Gm");

        for (String arr : arrs) {

            System.out.println(arr);

}

四、自动装箱与自动拆箱

//两个新对象

        Integer i1=new Integer(15);

        Integer i2=new Integer(15);

        System.out.println(i1==i2);//反回false

       

        //自动装箱为Integer对象,如果在-128~127之间不会创建新对象,在常量池里保存,享元模式

        Integer i3=15;

        Integer i4=Integer.valueOf(15);

        System.out.println(i3==i4);

       

System.out.println(i3+1);//自动拆箱取值

 

五、枚举

作用:

让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制程序中填定的非法值,普通变量的方式在开发阶段无法实现这一目标。

1.使用普通类实现枚举

private WeekDay(){}

    //使用匿名子类,使方法nextDay里不用那么if else判断

    public final static WeekDay MON=new WeekDay(){

        public WeekDay nextDay() {

            return SUN;

        }

    };

    public  final static WeekDay SUN=new WeekDay(){

        public WeekDay nextDay() {

            return MON;

        }

    };

    public abstract WeekDay nextDay();

    @Override

    public String toString() {

        return this==MON?"MON":"SUN";

}

2.深入枚举

1)枚举就相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法

2)枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后要有分号与其他成员分隔。

//各对象实现抽象方法,返回自已,并调用有参数构造方法,单例可用枚举来写,因为构造方法私有,只有一个对象

   

public enum Chord

{

    //各对象实现抽象方法,返回自已,并调用有参数构造方法,单例可用枚举来写,因为构造方法私有,只有一个对象

    Am("am"){

        public Chord nextChord() {

            return Bm;

        }

       

    },Bm("bm"){

        public Chord nextChord() {

            return Cm;

        }

    },Cm("cm"){

        public Chord nextChord() {

            return Am;

        }

    };

    private String str;

    public abstract Chord nextChord();

    //构造方法要私有

    private Chord(String str)

    {

        this.str=str;

    }

}

 

//一些方法

//遍历反枚举对象

        for(Chord ch:Chord.values())

        {

            System.out.println(ch.compareTo(c));//返回它们的位置相减值

}

 

Chord cho=Chord.valueOf("Fm");//字符串到枚举

        System.out.println(cho);

        System.out.println("----------格式输出-----------");

        //格式输出%n换行

System.out.printf("%d,%s,%n",cho.ordinal(),cho);

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

详细请查看:http://edu.youkuaiyun.com/heima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值