Object
- Object클래스는 모든 클래스의 최상위 클래스
- 아무것도 상속받지 않으면 자동으로 Object를 상속
- Object가 가지고 있는 메소드는 모든 클래스에서 다 사용할 수 있다는 것을 의미
가장 많이 사용하는 메소드로는 toString(), equals(), hashCode(), 등이 있다.
아래에 예제로 import하지않아도 제공되는 object 클래스의 메소드를 사용해보자
public class Student {
String name;
String number;
String Birth;
Student(String name, String number, String Birth){
this.name = name;
this.number = number;
this.Birth= Birth;
}
public static void main(String[] args) {
Student s1 = new Student("지훈","777","940711");
Student s2 = new Student("민수","777","940512");
if(s1.equals(s2))
System.out.println("s1 == s2");
else
System.out.println("s1 != s2");
System.out.println("s1 hashCode : "+ s1.hashCode());
System.out.println("s2 hashCode : "+ s2.hashCode());
}
}
equals() , hashCode() 등의 메소드를 번호만 비교하도록 오버라이딩해보자.
public class Student {
String name;
String number;
String Birth;
Student(String name, String number, String Birth){
this.name = name;
this.number = number;
this.Birth= Birth;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((number == null) ? 0 : number.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (number == null) {
if (other.number != null)
return false;
} else if (!number.equals(other.number))
return false;
return true;
}
public static void main(String[] args) {
Student s1 = new Student("지훈","777","940711");
Student s2 = new Student("민수","777","940512");
if(s1.equals(s2))
System.out.println("s1 == s2");
else
System.out.println("s1 != s2");
System.out.println("s1 hashCode : "+ s1.hashCode());
System.out.println("s2 hashCode : "+ s2.hashCode());
}
}
'Work > Java' 카테고리의 다른 글
[Java] String, StringBuffer, StringBuilder 차이점 (2) | 2021.06.28 |
---|---|
[Java] java.lang 패키지 - 정리 (0) | 2021.06.24 |
[Java] 예외처리 - Exception, Throws, Throw (0) | 2021.06.24 |
[Java] 내부클래스 정리 - 클래스 내, Static, 메소드 내, 익명클래스 (0) | 2021.06.24 |
[Java] Server 내 특정 PID의 하위 프로세스 모두 Kill 시키기 (0) | 2021.06.07 |