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(){};//写了自定义构造器如仍要默认的构造器,就需要写出来。
@Override
public 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()
}
}