public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//快捷键:Alt+insert+toString()
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public class Application {
public static void main(String[] args) {
Student s1 = new Student("a",18);
Student s2 = new Student("b",17);
//getClass方法
//判断s1和s2是不是同种类型
Class<? extends Student> Class1 = s1.getClass();
Class<? extends Student> Class2 = s2.getClass();
if(Class1==Class2){
System.out.println("s1和s2属于同种类型");
}else{
System.out.println("s1和s2不属于同种类型");
}
//s1和s2属于同种类型
System.out.println("===========================");
//hashCode方法
System.out.println(s1.hashCode());//1324119927
System.out.println(s2.hashCode());//990368553
//s1和s2哈希值不同
System.out.println("===========================");
//toString方法
System.out.println(s1.toString());//Student{name='a', age=18}
System.out.println(s2.toString());//Student{name='b', age=17}
System.out.println("===========================");
//equals方法:判断两个对象是否相等-->比较两个对象地址是否相同
System.out.println(s1.equals(s2));//false
Student s3 = new Student("张三", 16);
Student s4 = new Student("张三", 16);
//s3和s4在堆中地址不同
System.out.println(s3.equals(s4));//false
}
}