包装类的介绍和使用

1.包装类概念
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.包装类中装箱和拆箱
装箱:
在这里插入图片描述
拆箱:
在这里插入图片描述

包装类:使用一个类把基本数据类型的数装起来,这个类叫包装类
基本数据类型:
byte short int long float double char boolen
对应的包装类:java.lang
Byte Short Integer Long Float Double Character Boolen
包装类中装箱和拆箱(重点)
1.装箱:把基本数据类型的数据转换为包装类int==>Integer
a.可以使用Integer类的构造方法
Integer(int value) 参数传递一个int类型的整数
Integer(String s) 参数传递一个字符串类型的整数
b.可以使用Integer类中的[静态]方法valueOf
static Integer valueOf(int i) 参数传递一个int类型的整数
static Integer valueOf(String s) 参数传递一个字符串类型的整数
注意:
以上两个参数是字符串的方法,必须传递字符串类型的整数,否则会抛出数字格式化异常
“10” 正确 "a"错误
2.拆箱:把包装类中基本数据的数据取出来,把包装类转换为基本数据类型Integer==>int
使用包装类中的方法:
Integer类:int intValue() 以 int 类型返回该 Integer 的值。
Double类:double doubleValue() 返回此 Double 对象的 double 值。

package com.itheima.demo01Integer;

import java.net.Inet4Address;

/*
    装箱:int==>Integer
    拆箱:Integer==>int
 */
public class Demo01Integer {
    public static void main(String[] args) {
        //装箱:int==>Integer
        //a.可以使用Integer类的构造方法
        Integer in1 = new Integer(10);
        System.out.println(in1);//10 Integer类重写了Object类的toString方法

        Integer in2 = new Integer("10");
        System.out.println(in2);//10

        //b.可以使用Integer类中的[静态]方法valueOf
        Integer in3 = Integer.valueOf(10);
        System.out.println(in3);//10

        Integer in4 = Integer.valueOf("10");
        System.out.println(in4);

        //注意:以上两个参数是字符串的方法,必须传递字符串类型的整数,否则会抛出数字格式化异常
        //Integer in5 = Integer.valueOf("A");//NumberFormatException: For input string: "A"

        //拆箱:Integer==>int
        //Integer类:int intValue() 以 int 类型返回该 Integer 的值。
        int a = in1.intValue();
        System.out.println(a);//10
    }
}

JDK1.5版本之后会自动装箱和拆箱

集合中只能存储对象

集合中存储的都是Integer对象,取出的元素也是Integer对象
3.自动装箱,自动拆箱

package com.itheima.demo01Integer;

import java.util.ArrayList;

/*
    自动装箱,自动拆箱(重点)
    在JDK1.5版本之后:装箱与拆箱[自动]进行转换
 */
public class Demo02Integer {
    public static void main(String[] args) {
        //自动装箱
        Integer in = 1;//等价于 Integer in = new Integer(1);
        
        //自动拆箱
        int a = in;//等价于 int a = in.intValue();
        
        //集合只能存储对象
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);//自动装箱 等价于 list.add(new Integer(1));
        
        //集合中存储的都是Integer对象,取出的元素也是Integer对象
        Integer in2 = list.get(0);
        int b = list.get(0);//自动拆箱 等价于 int b = list.get(0).intValue();
    }
}

4.基本类型与字符串之间的转换

基本类型与字符串之间的转换(重点,经常使用)
1.基本类型数据==>字符串类型
(重点)a.基本类型数据+"":工作中经常使用
b.可以使用包装类中的静态方法toString
Integer类:static String toString(int i)
Double类:static String toString(double d)

c.可以使用String类中的静态方法valueOf
static String valueOf(int i) 返回 int 参数的字符串表示形式。
static String valueOf(double d) 返回 double 参数的字符串表示形式。

2.字符串类型==>基本类型数据(特别重要)
在每一个包装类中都定义了一个parseXXX方法,可以把字符串基本类型的数据转换为基本数据类型
Integer类: static int parseInt(String s) 参数传递字符串类型的整数
Double类: static double parseDouble(String s) 参数传递字符串类型的小数

注意:
1.除了Character类,其他类都有parseXXX方法,Character没有parseXXX方法
怎么把字符串转换为char类型的数据那: “abc”.charAt(0)==> ‘a’
2.parseXXX方法,参数必须传递基本数据类型的字符串,否则会抛出数字格式化异常,布尔类型除外

package com.itheima.demo01Integer;

/*
    基本类型与字符串之间的转换(重点,经常使用)
 */
public class Demo03Integer {
    public static void main(String[] args) {
        //1.基本类型数据==>字符串类型
        //(重点)a.基本类型数据+"":工作中经常使用
        String s1 = ""+10;//"10"
        System.out.println(s1+10);//"1010"

        //b.可以使用包装类中的静态方法toString
        String s2 = Integer.toString(10);//"10"
        System.out.println(s2+100);//"10"+100==>"10100"

        //c.可以使用String类中的静态方法valueOf
        String s3 = String.valueOf(10);//"10"
        System.out.println(s3+1000);//"10"+100==>"101000"

        //2.字符串类型==>基本类型数据(特别重要)
        int a = Integer.parseInt("100");
        System.out.println(a+10);//110

        double d = Double.parseDouble("8.8");
        System.out.println(d+1.1);//9.9

        //把字符串转换为char类型,需要使用String类的方法charAt(索引)
        char c = "abc".charAt(0);
        System.out.println(c);//a
        System.out.println("abc".charAt(1));//b
        System.out.println("abc".charAt(2));//c

        //parseXXX方法,参数必须传递基本数据类型的字符串,否则会抛出数字格式化异常,布尔类型除外
        //int e = Integer.parseInt("哈哈");//NumberFormatException: For input string: "哈哈"

        //布尔类型只有两个值:true  false
        boolean b1 = Boolean.parseBoolean("true");
        System.out.println("b1:"+b1);//b1:true
        boolean b2 = Boolean.parseBoolean("false");
        System.out.println("b2:"+b2);//b2:false
        boolean b3 = Boolean.parseBoolean("abc");//字符串不是true,得到的全是false
        System.out.println("b3:"+b3);//b3:false
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旭子在努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值