栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习(继承)——对象包装器,自动开/装箱,参数数量可变,枚举类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习(继承)——对象包装器,自动开/装箱,参数数量可变,枚举类

对象包装器与自动装箱
  • 有时候需要将int这样的基本类型转换为对象。所有的基本类型都有着与之对应的类,像Integer类对应着基本类型int。通常这些类称为包装器

  • 这些包装器有显而易见的名字,Integer,Long,Double,Float,Short,Byte,Character,Boolean(前留个类派生于公共的超类Number)

  • 包装器类是不可变的,即一旦构造了包装器,就不允许更改包装在其中的值。

  • 同时包装器类还是final,因此不能派生它们的子类

  • 假设想要定义一个整型数组列表,但是尖括号中的不能是基本类型,在这里就可以用到Integer包装器类。我们可以声明一个Integer类的对象类表

    var list=new ArrayList();
    • 由于每个值分别包装在对象中,所以ArrayList()的执行效率要远远低于int[]数组。因此,只有在程序员操作的方便性比执行效率更重要时,才会考虑对较小的集合使用这种构造

  • 自动装箱与自动拆箱:

    • 如果要在整型数组列表中添加元素会自动装箱可以调用:

      list.add(3);
      //这个语句将自动转化为
      list.add(Integer.valueOf(3));
    • 如果将一个Integer对象赋值给一个int值时,会自动拆箱

      int n=list.get(i);
      //这个语句将自动转化为
      int n=list.get(i).intValue();
    • 自动装箱自动拆箱也能用于算数表达式,可以将一个自增运算符引用与一个包装器引用

    • 另外,如果在一个包装器中混合使用了Integer和Double类型,Integer就会拆箱,提升为double,再装箱为Double

    • 将数字字符串转化为数字:想要将字符串转化为整型就要使用Integer.parseInt()方法

参数数量可变的方法
  • 省略号...是Java代码的一部分,它表明这个方法可以接受任意数量的对象

  • 通过一个例子来学习以下多参数的传递:

  • 如果一个方法的从最后一个参数是一个数组的话就把它定义为有可变参数的方法,例如,像main方法的参数String[] args,就可以定义为String...args

枚举类
  • public enum Size{SMALL,MEDIUM,LARGE,EXTAR_LARGE}
  • 这个声明定义的是一个枚举类,它刚好有三个实例,不可能在构造新的对象,如果需要比较两个枚举类型的值时,只需要用==就行了

  • 还可以为枚举类增加构造器,方法和字段。当然,构造器只是在构造枚举常量时使用

  • 所有的枚举类型都是Enum类的子类,他们继承了这个类的许多方法

    • toString方法返回枚举常量名

      Size.SMALL.toString();
    • valueOf方法

      Size s=Enum.valueOf(Size.class,"SMALL");

      将s设置为Size.SMALL

    • values方法,返回一个包含全部枚举值的数组

      Size[] values=Size.values()
    • ordinal方法返回enum声明中枚举常量的位置,位置从0开始

      Size.SMALL.ordinal();//返回0

        参考书籍:Java核心技术 卷1(原书第11版)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351846.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号