包装类与基本数据类型

包装类:可以让基本数据类型获取跟对象一样的属性和特征,行使对象的相关权益
命名:大部分包装类的命名是它的基本类型的名称首字母大写(如float-Float,byte-Byte),但有两个特例,int对应的包装类Integer,以及char对应的包装类Character

包装类常用方法

包装类都是final修饰的,不能被继承。
所有的数值型包装类(Integer Byte Short Long Float Double )直接父类都是Number类;
字符型和布尔型(Character Boolean)直接父类为Object类;
每个包装类有很多方法,去甲骨文官网去看API

基本数据类型和包装类之间的转换

​ 1、每一种基本数据类型都应该有对应的对象类型,方便对基本类型进行操作。包装类型可以解决一些 基本类型解决不了的问题,如有时候需要传递一个Object变量 而你想传递int类型的进去显然不行, 这就要用到包装类。
​ 2、集合不允许存放基本类型数据,只能存放包装类型。

  1. 装箱:把基本数据类型转换成包装类
    (1)自动装箱:不用实例化,直接赋值;

        int t1=2;
        Integer t2=t1;

    (2)手动装箱:实例化,构造函数的方法

        int t1=2;
        Integer t3=new Integer(t1);

    4.拆箱:把包装类转换成基本数据类型
    (1)自动拆箱:

        int t4=t2;

    (2)手动拆箱

       int t5=t2.intValue();

编程练习1

请按照编辑器中的注释,在对应的空白区域填写对应的代码,完成基本数据类型和包装类之间的转换。

程序运行参考效果图如下:

package me.feihong.wrap;

public class test {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    // 定义int类型变量,值为100
    int score = 100; 
    // 创建Integer包装类对象,表示变量score1的值
    Integer score1=score;
                    
    // 将Integer包装类转换为double类型
    double score2=score1.doubleValue();
                    
    // 将Integer包装类转换为long类型
    long score3=score1.longValue();
                    
    // 将Integer包装类转换为int类型
    int score4=score1.intValue();
            
    //打印输出
    System.out.println("score对应的Integer类型结果为:"+score1);
    System.out.println("score对应的double类型结果为:"+score2);
    System.out.println("score对应的long类型结果为:"+score3);
    System.out.println("重新由Integer转换为int类型的结果为:"+score4);

}

}

基本数据类型和字符串之间的转换

//1. 基本数据类型转换为字符串:
int t1 = 2;
String t2 = Integer.toString(t1);
//2. 字符串转化为基本数据类型
int t3 = Integer.parseInt(t2);
//或者:
int t4 = Integer.valueOf(t2);

编程练习2

请按照编辑器中的注释,在对应的空白区域填写对应的代码,完成基本数据类型和包装类之间的转换。

程序运行参考效果图如下:

package me.feihong.wrap;

public class TestTwo {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    double a = 12.5;
    //将基本类型转换为字符串
    String str1 =Double.toString(a)+10;    
    System.out.println("a 转换为String型后+10的结果为: "+str1);                
    String str = "2.8";
    // 将字符串转换为基本类型
    double b =Double.valueOf(str)+10;
    System.out.println("str 转换为double型后+10的结果为: "+b);

}

}

需要知道的几点知识

1.包装类的默认值是null

在包装类当中实现自动拆装箱背后的秘密:
我们直接给包装类赋值实现自动装箱,实际上编译器是做了这些工作:
1.调用valueOf();方法,在这个方法执行时Java中提供了对象池,如果数据大小在-128--+127之间就可以装进这个池子(很明显这个是个8位缓存器)。
2.当你给包装类赋值时,它会在对象池里先查找存不存在这样的一个对象,如果有,就让现在这个对象也指向这个内存空间,直接产生
3.如果超出范围,或者池子里原来没有相同的对象,编译器就会new开辟一个空间

8种基本数据类型对应的包装类中,Double和Float不具备常量池概念。

编程练习3

请按照编辑器中的注释,在对应的空白区域填写对应的代码,完成基本数据类型和字符串之间的转换。

程序运行参考效果图如下:

package me.feihong.wrap;

public class TestTwo {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    //定义float类型变量,赋值为88.99
    float f1 = (float)88.99;
    //将基本类型转换为字符串
    String str1=Float.toString(f1)+20;                                    
    //打印输出
    System.out.println("f1转换为String型后与整数20求和的结果为:"+str1);        
    //定义String类型变量,赋值为"188.55"
    String str = "188.55";
    // 将字符串转换为基本类型double
    double t1=Double.valueOf(str)+20;
    //打印输出
    System.out.println("str转换为double型后与整数20的求和结果为:"+t1);

}

}
最后修改:2019 年 12 月 31 日
如果觉得我的文章对你有用,请随意赞赏