包装类和重写toString()方法
包装类:
Java增强的包装类:
Java是面向对象编程语言,但同样提供了8种基本数据类型,这8种基本数据类型不支持面向对象的编程机制,基本数据类型同样也不具备“对象”的特征:没有Field成员变量、没有方法可以被调用。
8种基本数据类型带来一定的方便性,即:可以进行简单、有效的常规数据处理。但在某些时候基本数据类型会有一些制约。例如:所有的引用类型的变量都继承Object类,都可以当成Object类型变量使用,但是基本数据类型则不可以,如果某些类提供的方法需要Object类型的参数,但实际的数值却是1、2、3、4等数值,这种情况就难以处理。
为了解决8种基本数据类型的变量不能当成Object类型变量使用的问题,Java提供了包装类的概念,为8种基本数据类型分别定义了相应的引用类型,并称为基本数据类型的包装类。
通过这些包装类,可以基本类型和String(String是引用类型)之间进行相互转化!!
包装类里提供了很多方法,操作字符串和基本类型。
例如:
String size = “100”;int num;
num = Integer.parseInt(size);这样把size转成了int类型
三种把基本类型转化为字符串:推荐第一种,较简单!
(1) 装箱与拆箱
Java提供的基本数据类型与包装类之间的转换有点繁琐,在JDK1.5版本中提供了自动装箱与拆箱的功能。所谓的自动装箱与拆箱就是可以把一个基本类型的数据变量赋值为包装类变量,或者赋值给Object变量,子类对象可以直接赋值给父类变量就是装箱的一种体现。
自动拆箱则与之相反,允许直接把包装类对象直接赋值给一个对应的基本类型变量。
举例2:
public static void main(String[] args) {
//自动装箱
Integer a = 5;
//自动拆箱
int b = new Integer(6);
}
(2) 基本数据类型与字符串之间的转换
1、 利用包装类提供的parseXxx(String s)的静态方法,将String类型的数据转换成相应的基本数据类型。
2、 利用包装类提供的Xxx(String s)构造器。
3、 String类型提供了多个valueOf()方法,用于将基本类型变量转换成字符串。默认调用的是对应包装类中的toString()方法。
4、包装类提供了对应的toString()方法,用于将基本数据类型转换为字符串。
toString()方法:
这三个都是引用类型:
toString方法
创建一个对象,并将对象在控制台打印出来。
package com.langsin.test;
public class Test {
public static void main(String[] args) {
Test test = new Test();
System.out.println(test);
}
}
输出结果:[email protected]
System.out.println()方法只能在控制台输出字符串,而Test是内存中的一个对象,实际上输出Test的时候默认的调用的是Test从Object类中继承的toString()方法。等同于System.out.println(test.toString());
Object类提供的toString方法是对该对象的“自我描述”信息,该方法总是返回实现类的“类名[email protected]+hashCode”值,这个返回值并不能真正实现“自我描述”,就必须重写Object类的toString方法。
下面举个例子:
当Beauty中tostring()没重写时,打印b的地址!