包装类

在开发过程中,有很多的方法接收的参数都是引用类型的对象,此时就无法将一个基本数据类型的数据传入。这是就需要通过包装类将基本数据类型的值包装为引用类型的对象。下表列出了每种基本数据类型对应的包装类:

基本数据类型对应的包装类
byteByte
charCharactter
int Integer
shortShort
longLong
floatFloat
doubleDouble
booleanBoolean

 

 

 

 

 

 

 

包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念。其中,装箱是指将基本数据类型的值转为引用数据类型,反之,拆箱是指将引用数据类型的对象转为基本数据类型。

Example01.java

public class Example01 {
    public static void main(String[] args) {
        int a = 20;
        Integer in = new Integer(a);
        System.out.println(in.toString());
    }
}

 

运行结果如下:

上面的例子演示了包装类Integer的装箱过程,在创建Integer对象时,将int类型的变量a作为参数传入,从而转为Integer类型。同时,由于Object类是所有类的父类,因此可以通过调用toString()方法将Integer的值以字符串的形式打印出来。此处的toString()方法也可以省略。

Integer类除了具有Object类的所有方法之外,还有一些特有的方法。

方法声明功能描述
static String toBinaryString(int i)以二进制无符号整数形式返回一个整数参数的字符串
static String toHexString(int i)以十六进制无符号整数形式返回一个整数参数的字符串
static String toOctalSring(int i)以八进制无符号整数形式返回一个整数参数的字符串
static Integer valueOf(int i)返回一个表示指定的int值的Integer实例
static Integer valueOf(String s)返回保存指定的String的值的integer对象
static int parseInt(String s)将字符串参数作为有符号的十进制整数进行解析
intValue()将Integer类型的值以int类型返回

 

 

 

 

 

 

Example02.java

1 public class Example02 {
2     public static void main(String[] args) {
3         Integer num = new Integer(20);
4         int a = 10;
5         int sum = num.intValue() + a;
6         System.out.println("sum=" + sum);
7     }
8 }

 

运行结果如下:

 上面的例子演示了拆箱的过程,Integer对象通过调用intValue()方法,将Integer对象转为int类型,从而可以与int类型的变量a进行加法运算,最终得出运算结果。

上面列表中的parseInt()方法在程序中很常用,它是一个静态方法,用于将一个字符串形式的数值转成int类型。

 在使用包装类时,需要注意以下几点:

  • 包装类都重写了Object类的toString()方法,以字符串的形式返回被包装的基本数据类型的值。
  • 除了Character外,包装类都有valueOf(String s)方法,可以根据String类型的参数创建包装类对象,但参数字符串s不能为null,而且字符串必须是可以解析为相应基本类型的数据,否则虽然编译通过,但运行时会报错,如下:
1 Integer i = Integer.valueOf("123");//合法
2 Integer i = Integer.valueOf("12a");//不合法
  • 除了Character外,包装类都有parseXxx(String s)的静态方法,将字符串转换为对应的基本类型的数据。参数s不能为null,而且同样必须是可以解析为相应基本类型的数据,否则虽然编译通过,但运行会报错,如下:
    1 int i = Integer.parseInt("123");//合法
    2 Integer in = Integer.parseInt("12a");//不合法

JDK5.0新特性---自动拆箱和自动装箱

在JDK5.0之前,数学运算表达式中的操作数必须是基本类型的,并且运行结果也是基本类型,包装类和基本类型是不允许进行混合数学运算的,如果想运算,必须要通过拆箱将包装类对象转为基本数据类型的值才行。

 

转载于:https://www.cnblogs.com/gouyadong/p/6920201.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值