2013-12-20 211 views
9

我明白什么是包装类,它们的基本类型(例如:int,double等)到它们各自类的对象(例如:Integer,Double等)。但是,为什么我们需要包装类,为什么我们选择了它们各自类的对象。为什么我们需要包装类

+1

为什么你需要一个包? –

+0

@Sivakumar M如果我的答案有帮助,那么你可以upvote,然后选择我的答案 – Ashish

+0

除了下面的答案由阿什什,包装类是有泛型/收集。我们无法创建原始数据类型列表 –

回答

26

Java是一种面向对象的语言,可以将所有东西视为一个对象。一个简单的文件可以被当作一个对象,一个系统的地址可以被看作是一个对象,一个图像可以被看作是一个对象(带有java.awt.Image),一个简单的数据类型可以被转换成一个对象(包装类)。本教程讨论包装类。包装类用于将任何数据类型转换为对象。

原始数据类型不是对象;他们不属于任何阶级;它们是用语言本身来定义的。有时候,需要将数据类型转换为Java语言中的对象。例如,直到JDK1.4,数据结构只接受要存储的对象。数据类型将被转换为对象,然后添加到堆栈或向量等。对于此转换,设计人员引入了包装类。

什么是包装类?

顾名思义,一个包装类包装(包含)在数据类型周围并给它一个对象外观。无论何时,数据类型都是必需的,可以使用该对象。包装类包括解包对象并返回数据类型的方法。它可以与巧克力相比。制造商用巧克力箔或纸包裹巧克力以防止污染。使用者拿走巧克力,取出并抛出包装并吃掉。

请注意以下转换。

int k = 100; 
    Integer it1 = new Integer(k); 

int数据类型k使用Integer类转换为对象it1。只要需要k对象,it1对象就可以在Java编程中使用。

以下代码可用于解包(从Integer对象获取int)对象it1。

int m = it1.intValue(); 
System.out.println(m*m); // prints 10000 

intValue()是返回int数据类型的Integer类的方法。

包装类的重要性

主要有两个用途与包装类。

1)将简单数据类型转换为对象,即将对象形式转换为数据类型;这里使用构造函数。

2)要将字符串转换为数据类型(称为解析操作),此处使用parseXXX()类型的方法。

Java包装类的功能。

1)包装类将数字字符串转换为数字值。

2)将原始数据存储在对象中的方式。

3)的的valueOf()方法是可用的所有包装类除外字符

4)所有包装类具有typeValue()方法。该方法返回对象的值作为其基本类型。

+1

除了上述Ashish的回答,还有包装类用于泛型/集合。我们不能创建原始数据类型列表 –