package com.chapter.demo05;
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;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object obj){
if(this == obj){
return true;
}
if(obj == null){
return false;
}
if(obj instanceof Student){
Student s=(Student) obj;
if(this.name.equals(s.getName()) && this.age == s.getAge()){
return true;
}
}
return false;
}
@Override
protected void finalize() throws Throwable {
System.out.println(this.name+"对象被回收了");
}
}
package com.chapter.demo05;
public class TestStudent {
public static void main(String[] args) {
Student s1 = new Student("aaa",20);
Student s2 = new Student("bbb",22);
Class class1 = s1.getClass();
Class class2 = s2.getClass();
if(class1 == class2){
System.out.println("s1和s2属于同一个类型");
}else {
System.out.println("s1和s2不属于同一个类型");
}
System.out.println("-----------2.hasCode---------------");
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
Student s3 = s1;
System.out.println(s3.hashCode());
System.out.println("-----------3.toString---------------");
System.out.println(s1.toString());
System.out.println(s2.toString());
System.out.println("-----------4.equals---------------");
System.out.println(s1.equals(s2));
Student s4 = new Student("小明",17);
Student s5 = new Student("小明",17);
System.out.println(s4.equals(s5));
}
}
package com.chapter.demo05;
public class TestStudent2 {
public static void main(String[] args) {
new Student("aaa",20);
new Student("bbb",20);
new Student("ccc",20);
new Student("ddd",20);
new Student("eee",20);
System.gc();
System.out.println("回收垃圾");
}
}