一、在java中所有的类都有一个公共的父类Object,一个类只要没有明显地继承一个类,则肯定是Object类的子类
二、Object类中的主要方法
1、public Object()——构造方法
2、public boolean equals(Object obj)——对象的比较
3、public int hashCode()——取得Hash码
4、public String toString()——对象打印时调用
三、toString()方法
1、对象输出时一定会调用Object类中 toString()方法打印内容
package lkp;
class Demo{
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo d = new Demo();
System.out.println(d);
System.out.println(d.toString());
}
}
2、覆写Object类中的toString()方法
package lkp;
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String toString(){//覆写toString()方法
return "姓名" + this.name +"\t"+ "年龄" + this.age;
}
}
class Test{
public static void main(String args []){
Person per = new Person("lkp",23);
System.out.println("个人信息:" + per);
}
}
四、equals()方法
1、实现对象的比较,Object类提供的equals()方法默认是比较地址
package lkp;
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
//覆写Object类中的equals()方法
public boolean equals(Object obj){
//首先,判断传递过来的对象与当前对象的地址是否相同
if(this == obj){
return true;
}
//然后,判断传递过来的对象是否是Person实例
if(!(obj instanceof Person)){
return false;
}
//如果是Person类,则将属性依次比较
Person per = (Person)obj;//将传递过来的对象向下转型
if(per.name.equals(this.name)&&per.age == this.age){
return true;
}
else{
return false;
}
}
//覆写toString()方法
public String toString(){
return "姓名" + this.name + "年龄" + this.age;
}
}
class Test{
public static void main(String args[]){
Person per1 = new Person("lkp",23);
Person per2 = new Person("lkp",23);
System.out.println( per1.equals(per2)?"是同一个人":"不是同一个人");
System.out.println( per1.equals("hello")?"是同一个人":"不是同一个人");
}
}