包装类、可变参数类型和枚举类

包装类

每个基本数据类型都有对应的包装类,与基本数据类型名字像似。Integer、Long、Float、Double、Short、Byte、Character、Boolean。这八个包装类都有一个公共的父类Number。
包装类由final修饰,不能继承,创建后也不能改变其中的值。

list.add(3);
将会自动转化为
list.add(Integer.valueOf(3));

上面就是基本数据类型自动装箱成包装类。调用的是相应包装类的valueOf方法。

int n = list.get(i);
将会自动转化为
int n = list.get(i).intValue();

当包装类赋值给基本类型时,会自动拆箱,转化为基本数据类型。

Integer n = null;
System.out.println(2 * n);

如果包装类为null,则在自动拆箱的时候,会报空指针异常。

Integer i = 12;
Double d = 0.2;
System.out.println(i + d);

当Integer和Double一起运算的时候,Integer会先自动拆箱后转化为double类型,在自动装箱成Double。

可变参数类型

public void fuction(double...values){}

类似上面的这样,可变参数类型使用三个点,可以接收任意数量的参数。
需注意的是,可变参数需要放在参数列表的最后面。
允许将数组作为最后一个参数传递给可变参数的方法。

枚举类

public enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE}

上面是枚举类的一个实例,使用enum关键词定义的类称为枚举类。
枚举类在比较的时候不用使用equals,直接使用==号进行比较。
枚举类可以增加构造器、方法和字段。

public enum Size {
    SMALL("S"),MEDIUM("M"),LARGE("L");
    private final String abbreviation;
    Size(String abbreviation){
        this.abbreviation = abbreviation;
    }
    public String getAbbreviation(){
        return abbreviation;
    }
}

枚举类的构造器总是私有的,private可以省略。所有的枚举类都是Enum的子类,继承了这个类的许多方法。
每个枚举类都有一个静态的values方法

Size[] values = Size.values();

返回的是包含所有枚举元素的数组。
ordinal方法返回的是枚举类中元素的位置,从0开始计数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值