包装类及其构造方法、常用方法、装箱和拆箱

本文详细介绍了Java中的包装类,包括它们的作用、构造方法(基本类型转对象和字符串转对象)、常用方法(如Value()、toString()和parseXXX()),以及装箱与拆箱的概念。重点讲解了如何在集合中使用包装类,并展示了如何进行类型转换和操作包装类对象。

包装类把基本数据类型转换为对象

 

    每个基本类型在Java.lang包中都有一个相应的包装类

包装类的作用

    提供了一系列实用的方法

    集合不允许存放基本数据类型数据,存放数字时,要用包装类

基本数据类型所对应的包装类

 * @Description//包装类及其构造方法
 */
public class Test {
    public static void main(String[] args) {
        //基本数据类型-->包装类  特殊的:int--Integer  char--Character,其他的几个都是首字母变大写
        int i=9;
        System.out.println(i);
        double d=9.8;
        char c='c';
        float f=9.8f;
        boolean b=true;

        //引用数据类型(JDK提供的引用类型-如String、自定义的数据类型、数组)
        Scanner input=new Scanner(System.in);
        input.next();

        //包装类的两个作用,使用相应的方法:如集合无法存放基本数据类型,基本数据类型->包装类,放进去
        List list=new ArrayList();
        //list.add(Object);
    }
}

 所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例

    public  Type(type  value)

        如:Integer i=new Integer(1);

除Character类外,其他包装类可将一个字符串作为参数构造它们的实例

    public  Type(String  value)

        如:Integer i=new Integer("123");

 * @Description//包装类及其构造方法
 */
public class Test {
    public static void main(String[] args) {
        //包装类的构造方法:
        //(1)以每个包装类对应的基本数据类型作为参数
        //基本数据类型-->包装类
        int iNum=9;
        Integer i=new Integer(iNum);

        double dNum=9.8;
        Double d=new Double(dNum);

        char cNum='c';
        Character c=new Character(cNum);

        float fNum=9.8f;
        Float f=new Float(fNum);

        boolean bNum=true;
        Boolean b=new Boolean(bNum);

        //(2)除Character以外,以字符串作为参数
        //当Number类型的包装类构造方法参数为字符串时,字符串必须是能转换为Number的字符串,否则会NumberFormatException
        //且字符串不能为null
        Integer i2= new Integer("123");
        System.out.println(i2+1);//124,并非1231
//        Integer i3= new Integer("love");
//        System.out.println(i3);//NumberFormatException
//        Integer i4= new Integer("null");
//        System.out.println(i4);//NumberFormatException
//        Integer i5= new Integer(null);
//        System.out.println(i5);//NumberFormatException

        Double d2=new Double("87.9");
        System.out.println(d2+1);//88.9,并非87.91
        Float f2=new Float("9.8");
        System.out.println(f2+1);//10.8
        // Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示为false
//        Boolean b2=new Boolean("true");
//        Boolean b2=new Boolean("TrUe");
//        Boolean b2=new Boolean("false");
        Boolean b2=new Boolean("love");
        System.out.println(b2);

        //Character没有带字符串作为参数的构造方法,如下写法编译不通过
//        Character c2=new Character("a");
    }
}

包装类把基本数据类型转换为对象

包装类的两种构造方法

     参数为基本数据类型

     参数为字符串

包装类的常用方法:

 XXXValue():包装类转换成基本类型


     

toString():以字符串形式返回包装对象表示的基本数据类型(基本类型-->字符出)

parseXXX():把字符串转换为相应的基本数据类型数据(Character除外)(字符串->基本类型)

valueOf():

      所有包装类都有如下方法:(基本类型-->包装类)

      public  static  Type  valueOf(type  value)

            如:Integer  inValue=Integer.valueOf(21);

      除Character类外,其他包装类都有如下方法(字符串-->包装类)

      public  static  Type  valueOf(String  s)

            如: Integer  inValue=Integer.valueOf("21");

代码演示:

 * @Description//包装类的常用方法
 */
public class Test {
    public static void main(String[] args) {
        //XXXValue():包装类-->基本数据类型
        Integer i=new Integer(100);
        int iNum=i.intValue();

        Boolean b=new Boolean(true);
        boolean b2=b.booleanValue();

        //toString():基本数据类型-->字符串
        int num=100;
        String sNum=Integer.toString(num);

        boolean b3=true;
        String s=Boolean.toString(b3);

        //常用方法:基本数据类型-->字符串,比上面的toString()更常用
        String sNum2=100+"";
        String s2=true+"";

        //parseXXX():字符串->基本数据类型,除Character以外(常用)
        String age="18";
        int ageNum=Integer.parseInt(age);

        String score="98.3";
        double score2=Double.parseDouble(score);

        //编译报错,Character不存在这个parseXXX()方法
//        String sex="女";
//        char cSex=Character.parseChar(sex);

        //valueOf(基本数据类型):基本数据类型->包装类
        int j=90;
        Integer j1=Integer.valueOf(j);

        char sex='男';
        Character cSex=Character.valueOf(sex);

        //valueOf(字符串):字符串->包装类,除Character以外
        //注意事项一:当包装类为Number时,参数字符串必须为数字兼容的字符串,否则会NumberFormatException
        String m="123";
        Integer mi=Integer.valueOf(m);

        System.out.println("***********");
//        String m1="love";
//        Integer mi1=Integer.valueOf(m1);

        //注意事项二:当Boolean调用valueOf(字符串)时,除了参数内容为true(不区分大小写),其他都转化为false
        System.out.println("***********");
//        String flags="true";
//        String flags="TrUe";
//        String flags="false";
        String flags="china";
        Boolean bFlag=Boolean.valueOf(flags);
        System.out.println(bFlag);

        //编译报错,因为Character不存在这个valueOf(字符串)方法
//        String gender="男";
//        Character gender2=Character.valueOf(gender);

    }
}

装箱和拆箱

基本类型和包装类的自动转换

Integer intObject=5;

int  intValue=intObject;

装箱:基本类型转换为包装类的对象

拆箱:包装类对象转换为基本类型的值

 * @Description//装箱和拆箱
 */
public class Test {
    public static void main(String[] args) {
        //包装类-->基本数据类型  自动转换-->拆箱
        Integer i=new Integer(100);
//        int iNum=i.intValue();
        int iNum=i;//拆箱
        System.out.println(iNum);

        //基本数据类型-->包装类  自动转换-->装箱
        int j=90;
        Integer j1=j;
//        Integer j1=Integer.valueOf(j);
        System.out.println(j1);//装箱

        //集合中只能存储包装类型,不能存基本类型
//        List list=new ArrayList();
//        int num=100;
//        Integer numInteger=new Integer(num);
//        list.add(numInteger);
        List list=new ArrayList();
        list.add(100);//int 100-->装箱 Integer
    }
}

包装类并不是用来取代基本数据类型的,在基本数据类型需要用对象表示时使用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值