Java初级历程

[Java初探09]__关于Java的包装类

2019-04-09  本文已影响0人  葛木小舍先生丶

包装类就是为了使用户能够将基本数据类型视作对象处理而对每个基本数据类型进行重新包装的类.我们可以通过这些类来new一个基本数据类型的对象.从而使基本数据类型也能够视为对象来处理.

我们在前面的学习中了解到,Java语言其实就是基于一套Java的标准类库的,我们编写Java程序就是在其基础上来编程的,我们也知道,一项问题通过面向对象的思想解决,就是要先将其抽象为对象,然后分析其属性和行为,最后封装成类,加入到类库之中,然后通过用户的调用,解决问题.

所以在Java语言中,为了使各种基本数据类型能够当作对象来使用,它给我们提供了各基本数据类型的包装类.

包装类存放在Java类库的java.lang包下:

2019-4-8-02.gif

关于java.lang包:

java.lang是提供利用 Java 编程语言进行程序设计的基础类。最重要的类是Object(它是类层次结构的根)和 Class(它的实例表示正在运行的应用程序中的类)。把基本类型的值当成一个对象来表示通常很有必要。包装器类 Boolean、Character、Integer、Long、Float 和 Double 就是用于这个目的。


2019-4-8-03.png

Integer类在对象中包装了一个iint型的值,该类的对象包含一个int类型的字段.此外该类还提供了几个方法,能够使int型和String型相互转换.同时还有提供了一些处理int类型时非常有用的常量和方法.

    Integer integer = new Integer(123);
    Integer integer1 = new Integer("23");
2019-4-8-03.gif

其中需要注意的是,在以String类型构建对象的时候,参数不能以真正随意的字符串来定义。而是以字符串的形式,将一段int型数据存放在String类型中,然后传参使用构造方法构建对象。

compareTo方法是在数字上比较两个Integer对象,如果他们相等,返回0;如果对象小于传入的参数对象,则返回负值。反之返回正值。
equals方法比较两个对象是否相等。返回的是boolean型数据。
其他的几个方法则是类型转换,讲对象的类型转换以其他几种基本数据类型输出。

// 将一个String值的数据以Integer对象返回.
        System.out.println(Integer.valueOf(str).toString());
        // 将一个String字符串中的数字以等价的int整数值返回.
        System.out.println(Integer.parseInt(str));

关于整数类型的其他几种类型的包装类于Integer类是类似的。


2019-4-8-04.png

我们可以发现,Boolean类中的方法要少的多.

Boolean aBoolean = new Boolean(12<11);
Boolean aBoolean1 = new Boolean("flase");
 System.out.println(aBoolean.toString());
        //将对象的值以对应的boolean值返回
        System.out.println(aBoolean.booleanValue());
        //valueOf方法
        System.out.println(Boolean.valueOf(str));
        //paresBoolean方法
        System.out.println(Boolean.parseBoolean(str));
        // equals方法
        System.out.println(aBoolean.equals(aBoolean1));

其中valueOf方法与paresBoolean方法的区别也是前者返回的是一个对象,后者返回的是一个boolean值.


character类其实就是char类型的包装类.

2019-4-8-05.png

可以看到character类中的方法体众多,这可能也更char型是我们经常使用到的数据类型,并且关于它的操作也非常多的原因.

 Character character = new Character('a');
// 将对象以char型值返回
        System.out.println(character.charValue());
        //以数字比较两个对象
        System.out.println(character.compareTo(character1));
        //equals方法比较两个对象
        System.out.println(character.equals(character1));
        //大小写转换
        System.out.println(Character.toLowerCase(character));
        System.out.println(Character.toUpperCase(character1));
        //判断大小写
        System.out.println(Character.isLowerCase(character));
        System.out.println(Character.isUpperCase(character1));
    }
2019-4-8-06.png
2019-4-8-07.png

可以看到Double的构造方法也是两种,一种参数为double型,一种为String型,其实几个基本数据类型的包装类都很类似,毕竟他们都是为了实现相似的功能,将基本数据类型当做对象来使用.

Double aDouble = new Double(12.345d);
Double aDouble1 = new Double("234.3456");
 //常用方法
        System.out.println(aDouble1.isNaN());
        System.out.println(aDouble.equals(aDouble1));
        System.out.println(aDouble.compareTo(aDouble1));
        System.out.println(aDouble.floatValue());
        Double.valueOf(aDouble);
        Double.parseDouble(str);

2019-4-9-01.png

这些发方法就是:

2019-4-8-08.png

Number类的方法分别被Number各子类所实现,也就是说,在Number类的所有方法中都包含以上几种方法.(这其实就是面向对象的多态性的一种体现)


更新时间:
2019-4-9
2:08

上一篇 下一篇

猜你喜欢

热点阅读