/**
* java.lang.Object类是默认被每一个类继承的
*/
class Student{
private String name;
private int age;
private int gender;
public Student(){
super();
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
public void setGender(int gender){
this.gender = gender;
}
public int getGender(){
return gender;
}
/**
* 重写Object的equals方法,判断两个对象是否相等
*/
public boolean equals(Object obj){
boolean result = false ;
//判断Object的实例的类型是否是Student
if(obj instanceof Student){
Student st = (Student)obj;
//在本类中可以访问private属性
if(this.name.equals(st.name)&&(this.age == st.age)&&(this.gender == st.gender)){
result = true ;
}
}
return result ;
}
//重写hashCode
public int hashCode(){
return 1;
}
}
class ObjectDemo2{
public static void main(String []args){
Student s = new Student();
Student s1 = new Student();
//直接打印对象时是默认的在调用父类继承下来的toString
System.out.println(s);
System.out.println(s1);
//判断对象是否相等不能使用"=="因为"=="是判断的两个对象的地址,两个对象的地址永远不能相等
System.out.println(s == s1);
System.out.println("---------");
s.setName("kim");
s.setAge(18);
s.setGender(1);
s1.setName("kim");
s1.setAge(18);
s1.setGender(1);
System.out.println("学生s和学生s1是否相等"+s.equals(s1));
}
}