zoukankan      html  css  js  c++  java
  • 【JAVA】【基础类型】Java中封装类-Number类

    一、Number封装类
    Java内置了基本数据类型(boolean、char、byte、short、int、long、float、double),但是我们在编码更多的是使用基础数据类型封装类的对象、而不是内置数据类型。

    Java中对内置数据类型封装了封装类,包含在java.lang包。

    Number是一个抽象类,如下封装类是Number类的子类:

      1) Boolean

      2) Byte

      3) Short

      4) Integer

      5) Long

      6) Float

      7) Double

    举例:

      Integer i = 10;

      i = i + 1;


    封箱(包)与拆箱(包):

    Number封装类的对象也可以 像 基础数据类型 一样直接采用运算符进行运算,也可以进行 基本数据类型 和 Number封装类对象之间相互赋值,也可以进行基本数据类型和Number封装类之间混合运算。在这些操作中,Java自动完成装箱和拆箱。这种语言特性一般叫作自动装箱(autoboxing)

    (1)当基本数据类型被转换成对接的封装类对象时,编译器会对内置基本类型装箱成封装类。

    (2)相似的,编译器也可以把一个对象拆解成内置数据类型,称之为拆箱。

    如上例子:

    (1)当 i 被赋值时,由于 i 是一个对象,所以编译器对 i 进行装箱。

    (2)然后,为了给 i 进行加运算,编译器需要对 i 进行拆箱。

    如:

      Integer i = 0; // 把int类型字面量0装箱到Integer对象中

      Number n = 0.0f; // 把float类型字面量装箱到Float对象中,然后放大转换成Number类型

      Integer i = 1; // 这是装箱转换

      int j = i++; // i在这里拆箱 i++;拆箱i,递增,再装箱

      Integer k = i + 2; // 拆箱i,再装箱两数之和

      i = null; j = i; // 这次拆箱抛出NullPointerException异常 (原因是 i 没用引用的对象了,无法拆箱)

    Jave中基本数据类型的属性 以 常量方式定义在封装类中,可以通过如下方式获取这些基本数据类型的属性。如:以Integer为例,获取属性如下:

      Integer.SIZE  //获取int类型占用字节低效

      Integer.MIN_VALUE  //获取int类型最小值

      Integer.MAX_VALUE  //获取int类型最大值

    Float、Double常用的常量包含:MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITYNaN。方法如:Flaot.isNaN(),Double.isNaN()

    二、Number封装类常用的方法
    1) xxxValue()

     把number对象 转换为 内置数据类型 返回。byteValue()、shortValue()、intValue()、longValue()、floatValue()、doubuleValue()。样例:

     Integer i = 5;

     float f = i.floatValue();

    2) compareTo()

     public int compareTo( NumberSubClass referenceName )

     referenceName:可以是一个 Byte、Double、Integer、Float、Long或Short类型的参数。

     返回值:相等则,返回0;小于参数,则返回-1;大于参数,则返回1。样例:

     Integer i = 5;

     Float f = 5.43;

     int ret1 = i.compareTo(f);

     int ret2 = i.compareTo(4);

    3) equals()

     public boolean equals(Object o)

     o:任何对象。

     Number 对象不为 Null,且与方法的 参数类型数值 都相等 返回 True,否则返回 False。样例:

     Integer i = 5;

     Short a = 5;

     System.out.println(i.equals(a));

    4) toString()

     String toString() //对象方法

     static String toString(int i) //类方法

     返回一个字符串表示的 Number 对象值。

     样例:

     Integer a = 100;

     System.out.println(a.toString());

     System.out.println(Integer.toString(100));

       

       除此以外,封装类还提供了把数字转换“指定进制”的字符串的方法,如:

       Integer.toBinaryString(int i);

       Integer.toHexString(int i);

       Integer.toOctalString(int i);

       Double.toHexString(int i);

    5) valueOf()

     static Integer valueOf(int i)

     static Integer valueOf(String s)

     static Integer valueOf(String s, int radix)

     返回 给定参数的原生 Number 对象值,也支持Double等其他基础封装类对象。

     i:整数值。

     s:Integer类型对象的字符串。

     radix:解析s字符串时的使用的基数,即进制。

     样例:

       Integer a = Integer.valueOf(100);

       Integer b = Integer.valueOf(“99”);

       Integer b = Integer.valueOf(“1ABD”, 16);//16机制的1ABD

       Double d = Double.valueOf(“2.15143”);

    6) parseInt()

        static int parseInt(String s)

     static int parseInt(String s, int radix)

     将字符串参数返回为基础数据类型。也支持double等其他基础封装类对象。

     样例:

        int a = Integer.parseInt(“100”);

        int b = Integer.parseInt(“444”, 8);//8机制的444

        double d = Double.parseInt (“2.15143”);

  • 相关阅读:
    Python中max()内置函数使用(list)
    linux命令总结mpstat命令
    linux命令总结vmstat命令
    linux命令总结free命令
    linux命令总结top命令
    linux命令总结之echo命令
    Nagios服务器端配置文件详解
    python之OS模块详解
    真正的inotify+rsync实时同步 彻底告别同步慢
    linux BASH shell下设置字体及背景颜色
  • 原文地址:https://www.cnblogs.com/yickel/p/14593832.html
Copyright © 2011-2022 走看看