Java增强包装类
即使再小的帆也能远航~
一.目录
二.内容
? Java是面向对象编程语言,但同样提供了8中基本数据类型,这8种基本数据类型不支持面向对象的编程机制,基本数据类型同样也不具备“对象”的特征:没有Field成员变量、没有方法可以被调用。 8种基本数据类型带来一定的方便性,即:可以进行简单、有效的常规数据处理。但在某些时候基本数据类型会有一些制约。例如:所有的引用类型的数据都继承Object类,都可以当成Object类型变量使用,但是基本数据类型则不可以,如果某些类提供的方法需要Object类型的参数,但实际的数值确是1、2、3、4等数值,这种情况就难以处理。 为了解决8种基本数据类型的变量不能当成Object类型变量使用的问题,Java提供了包装类的概念,为8种基本数据类型分别定义了相应的引用类型,并称为基本数据类型的包装类。
基本数据类型 | byte | char | short | int | long | float | double | boolean |
---|
包装类 | Byte | Character | Short | Integer | Long | Float | Double | Boolean |
Java提供的包装类提供了相似的构造方法用于创建包装类对象,基本上是传入对应的基本数据类型或者字符串形式的数据
public static void main (String[]args) {
Integer int1=new Integer(5);
Integer int2 = new Integer("12");
Boolean bo1= new Boolean(true);
Boolean bo2 =new Boolean("false");
Double do1 =new Double(12.5);
Double do2= new Double("30.1");
}
分析:通过上面示例可以看出,所有基本数据类型包装类,都提供通过向包装类构造器中传入一个字符串参数的方式或者对应的基本数据类型的方式来创建包装类对象。但是如果传入的字符串参数不符合基本数据类型格式,那么将引发java.lang.NumberFormatException异常。数据转换格式化异常
public static void main (String[]args){
Integer int1 = new Integer("abc");
System.out.println(int1);
}
Java提供的基本数据类型与包装类之间的转换有点繁琐,在JDK1.5版本中提供了自动装箱与拆箱的功能。所谓的自动装箱与拆箱就是可以把一个基本类型的数据变量赋值为包装类变量,或者赋值给Object变量,子类对象可以直接赋值给父类变量就是装箱的一种体现。 自动拆箱则与之相反,允许直接把包装类对象直接赋值给一个对应的基本类型变量。
public static void main(String[]args) {
Integer int1=12;
System.out.println(int1);
int num =new Integer(5);
System.out.println(num);
}
字符转基本类型
在某些情况下,数值的表示形式不是由基本数据类型来表示的,而是由字符串类型的数值的形式来表示的,如果这种类型要进行算术运算时就需要提前将该字符串类型的数字转换成对应的基本数据类型。该如何来实现呢?
Java提供的包装类就可以帮助大家来解决这个问题。
1、利用包装类提供的parseXXX(Strings)的静态方法,将String类型的数据转换成相应的基本数据类型(XXX)。
2、利用包装类提供的Xxx(Strings)构造器。
3、String类型提供了多个valueOf()方法,用于将基本类型变量转换成字符串。
public static void main(String[]args){
String str1="23";
String str2="7";
int num1 = Integer.parseInt(str1);
int num2= Integer.parseInt(str2);
System.out.println("两个字符串形式的数值相加的和是:"+(num1+num2));
doublenum=12.5;
String numStr = String.valueOf(num);
System.out.println(numStr);
}
? 分析:通过以上程序不难看出,每一个基本数据类型所对应的包装类,都有一个parseXXX的方法,来将一个字符串类型的数值,转换成其对应的基本数据类型。Long.parseLong,Double.parseDoule等,但是需要注意的是这个字符串类型的数值中不能包含非数字的字符,否则会抛出java.lang.NumberFormatException异常。
? 将一个基本数据类型转换成字符串,除了使用String.valueOf的方法之外,最简洁的操作就是使用“+”的拼接功能,让一个基本数据类型与一个空“”字符串相加,结果即可得到该数值类型对应的字符串。但是建议大家在开发时还是通过方法调用的方式来实现。
基本类型转字符
- 基本数据类型.toString();
这个toString()是基本数据类型的静态方法
String s=int.toString(20);
- 将基本数据类型封装成相应的封装类型对象,采用"基本数据类型对象.toString()"的方法
Double d =new Double(321.2);
String s=d.toString();
-
基本数据类型+""<=>""+基本数据类型<=>字符串类型 String s=""+200;
String s=200+"";
-
String类的静态方法ValueOf()
String.valueOf('b');
|