java八种包装类_Java的8种包装类:Wrapper Class

Java有8种基本数据类型,为什么又要出现对应的8种包装类:

1、Java的8种基本数据类型不支持面向对象编程机制

2、8种基本数据类型不具备“对象”的特性:没有成员变量、方法可供调用

3、例如:某个方法需要Object类型的参数,但实际需要的却是2、3这种值,只靠基本的数据类型无法转换成Object参数传递过去

4、为解决8种基本数据类型不能当成Object类型使用的问题,Java提供了包装类的概念:

8种基本数据类型与对应的包装类:

byte         ------------------------>      Byte

short       ------------------------->     Short

int           ------------------------->     Integer

long        ------------------------->     Long

char        ------------------------->     Character

float        ------------------------->     Float

double    ------------------------->     Double

boolean  ------------------------->    Boolean

5、基本类型与包装类之间的转换(JDK1.5之前):

5.1、通过包装类对应的构造器实现

5.2、通过传入一些字符串参数,来构建包装类对象,如:

Integer a = new Integer("5.5");

5.3、如果想获得包装类对象中包装的基本类型变量,可以用包装类提供的.xxxValue()方法

代码示例:

public class WrapperClass{

public static void main(String[] args){

//-构造器方法定义Integer包装类a,并赋值

Integer a=new Integer("5");

System.out.println(a);

//-构造器方法定义Double包装类b,并赋值

Double b=new Double("5.5");

System.out.println(b);

//-通过包装类.xxxValue()方法,从包装类对象中获取基本类变量

int c=a.intValue();

System.out.println(c);

double d=b.doubleValue();

System.out.println(d);

}

}

运行结果:

345c468ec012ead80ffd4fe05a03620b.png

6、基本类型与包装类之间的转换(JDK1.5之后):

6.1、自动装箱(Autoboxing):把一个基本类型的变量,直接赋值给对应的包装类变量,或者赋值给Object变量(Object是所有类的父类,子类对象可以直接赋给父类变量----Java的向上自动转型特性)如:

Integer i=3;或Object j=4;

6.2、自动拆箱(AutoUnboxing):把一个包装类变量,直接赋值给一个基本类型的变量,如:

int a=i;

注意:int b=j;编译会报错,原因是:Java有向上自动转型特性,但不能自动向下转型,想要转要加强制转换,如:

int b = (Integer)j;

代码示例:

public class AutoBoxingUnboxing{

public static void main(String[] args){

//-自动装箱

Integer a=3;

//-自动拆箱

int b=a;

//-直接赋值给Object类型的变量,利用了Java的向上自动转型特性

Object o=true;

if(o instanceof Boolean){

//-Object类型不能直接赋值给Boolean类型,Java不能自动向下转型,如下代码会报错

//Boolean d=o;

//-想向下转型可以用强制转换方法,如下代码

Boolean c=(Boolean)o;

System.out.println(c);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值