Object类基本特性:
1.Object类是所有类的父类,所有的Java对象都拥有Object类的属性和方法(注意拥有并不等于可以直接使用)
2.如果在类的声明中未使用extends,则默认继承Object类。
toString方法是Object类里定义的一个方法,其作用是返回默认对象的地址(对象的hashcode是根据对象的地址生成唯一值,这里暂时直接视作对象的地址。)
使用示例1:
public class TestObject {int id;String name;String pwd;public TestObject(int id, String name, String pwd) {//自定义的构造器this.id = id;this.name = name;this.pwd = pwd;}TestObject(){};//写了自定义构造器如仍要默认的构造器,就需要写出来。public static void main(String[] args) {TestObject t1 = new TestObject();System.out.println(t1.toString());//使用toString()方法得到t1的地址TestObject t2 = new TestObject();System.out.println(t2.toString());System.out.println(t2);//如果不写toString,默认也是调用toString()}
}
运行结果如下:
toString方法如上所示,默认作用只是返回对象的地址。如果我们想用这个方法,返回对象的一些属性,那么需要重写这个方法。示例如下:
public class TestObject {int id;String name;String pwd;public TestObject(int id, String name, String pwd) {//自定义的构造器this.id = id;this.name = name;this.pwd = pwd;}TestObject(){};//写了自定义构造器如仍要默认的构造器,就需要写出来。@Overridepublic String toString() { //这就是重写了toString方法,使其能返回想要的对象属性return "ID:"+id+"账户名:"+name+"密码:"+pwd;}public static void main(String[] args) {TestObject t1 = new TestObject();System.out.println(t1.toString());//使用toString()方法得到t1的地址TestObject t2 = new TestObject();System.out.println(t2.toString());System.out.println(t2);//如果不写toString,默认也是调用toString()}
}