Object类是类层次结构的根类
每个类都使用Object作为超类,所有对象(包括数组)都实现这个类的方法
所有类都是Object类的子类
1.toString()方法:
返回该对象的字符串表示。通常,toString方法会返回一个“以文本方式表示”此对象的字符串,结果应是一个简明且易于读懂的信息表达式,建议所有子类都重写此方法。
示例代码:
public class Demo {
public static void main(String[] args) {
Student s = new Student(1,"aa",23);
System.out.println(s);
}
}
class Student{
private String name;
private int sid;
private int age;
public Student(){}
public Student(int sid,String name,int age)
{
this.sid = sid;
this.name = name;
this.age = age;
}
//重写Objec类中的toString()方法
@Override
public String toString() {
return "sid="+sid+",name="+name+",age="+age;
}
}
直接输出类名System.out.println(s);也可以打印出toString方法里的内容。
2.equals(Object obj)
指示其他某个对象是否与此对象“相等”,equals方法在非空对象引用上实现相等关系
重写equals之前,虽然两个对象的属性相同,但是调用equals方法,返回的值为false。
示例代码:
public class Demo {
public static void main(String[] args) {
Student s = new Student(1,"aa",23);
Student s1 = new Student(1,"aa",23);
boolean e = s.equals(s1);
System.out.println(e);
}
}
class Student{
private String name;
private int sid;
private int age;
public Student(){}
public Student(int sid,String name,int age)
{
this.sid = sid;
this.name = name;
this.age = age;
}
//重写Objec类中的toString()方法
@Override
public String toString() {
return "sid="+sid+",name="+name+",age="+age;
}
}
运行效果:重写代码后:
public class Demo {
public static void main(String[] args) {
Student s = new Student(1,"aa",23);
Student s1 = new Student(1,"aa",23);
boolean e = s.equals(s1);
System.out.println(e);
}
}
class Student{
private String name;
private int sid;
private int age;
public Student(){}
public Student(int sid,String name,int age)
{
this.sid = sid;
this.name = name;
this.age = age;
}
//重写Objec类中的toString()方法
@Override
public String toString() {
return "sid="+sid+",name="+name+",age="+age;
}
//重写equals方法,来实现两个对象的比较
public boolean equals(Object obj){
if(this==obj)
return true;
if(obj instanceof Student){
Student s = (Student)obj;
if(!this.name.equals(s.name))
return false;
if(this.age!=s.age)
return false;
if (this.sid!=sid)
return false;
}
return true;
}
}
运行效果:3.getClass()
返回此Object的运行时类