public class Main_HashCode2 {
public static void main(String[] args) {
Student s1 = new Student();
s1.name = "한조";
s1.age = 30;
s1.score = 60;
Student s2 = new Student();
s2.name = "한조2";
s2.age = 30;
s2.score = 60;
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
// 내가만든 hashcode 메서드에서 둘다 1 반환되고있으니까 1이겠지.
}
}
class Student{
String name;
int age;
int score;
// Object class hashCode를 오버라이딩 (리턴타입 : int)
// --> Object클래스에서 hashCode가 int로 지정돼있나보지?
// public String hashCode() { --> 이거안된다구
// return "나는 hashCode메서드";
// }
// public int hashCode() { --> 이거라구
// return 1;
// }
public int hashCode() {
int result = name.hashCode() + age + score;
return result;
}
// 이름, 나이, 점수가 같을 때 : result가 같다
// 이름이 달라진다 : 달라짐! (이름의 hashcode가 다르니까)
}