1 在java中提倡一种思想:"一切皆对象",这样就矛盾了,因为八中基本数据类型不能称之为对象,此时,就需要将基本数据类型进行包装,将八中数据类型变为一个类的形式。那么这也是包装类的作用。
2.Integer,Byte,Float,Double,Short,Long都属于Number子类,Number本身提供了一系列的返回以上六种基本数据类型的操作。而Number,Character,Boolean属于Object直接子类。
3. 装箱和拆箱
将基本数据类型变为包装类称为装箱。
将包装类的类型变为基本数据类型拆箱。
以Integer和Float为例:
(1) Integer举例:
public class Number {
public static void main(String[] args){
int x = 30;//基本数据类型
Integer i = new Integer(x);//装箱
int t = i.intValue();//拆箱
}
}
(2) Float举例:
public class Number {
public static void main(String[] args){
float x = 30.0f;//基本数据类型
Float i = new Float(x);//装箱
float t = i.floatValue();//拆箱
}
}
4. 在JDk1.5之前对于程序本身来说包装类是不能直接进行"+,-,*,/,++,--",是不可以的,因为是一个类,所以不可以这样操作。
但是在JDK1.5版本之后对程序的包装类功能进行了改变,增加了自动装箱和自动拆箱的功能,而且可以使用包装类进行数字运算。
举例:
public class Number1 {
public static void main(String[] args){
Integer x = 30;//自动装箱成Integer
Float f = 30.2f;//自动装箱成Float
int i = x;
float s = f;
}
}
5. 在包装类中,实际上还存在一个最大的特点,就是可以将字符串变为指定的数据类型。
A。Integer 类 (字符串转int型)
public static int parseInt(String s) throws NumberFormatException
B。Float 类 (字符串转int型)
public static float parseFloat (String s) throws NumberFormatException
举例:
public class Number2 {
public static void main(String[] args){
String str1 = "30";//由数字组成的字符串
String str2 = "30.3";//由数字组成的字符串
int x = Integer.parseInt(str1);
float f = Float.parseFloat(str2);
System.out.println("整数乘方:" + x + "*" + x + "= " + (x*x) );
System.out.println("小数乘方:" + f + "*" + f + "= " + (f*f) );
}
}
运行结果:
整数乘方:30*30= 900
小数乘方:30.3*30.3= 918.08997