2010. 11. 11. 22:11
equals 메소드를 오버라이딩 하기. Study/Java2010. 11. 11. 22:11
그냥 String a = "aaa";
String b="aaa";
a.equals(b) 는 같다고 나오지만
String a = new String("aaa");
String b = new String("aaa");
a.equals(b) 는 false를 반환한다.
이럴 때에는 equals 메소드를 오버라이딩 해준다.
이제 Effective JAVA 에 항목 8 'equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자' 참고해서 공부해야겠다.
String b="aaa";
a.equals(b) 는 같다고 나오지만
String a = new String("aaa");
String b = new String("aaa");
a.equals(b) 는 false를 반환한다.
이럴 때에는 equals 메소드를 오버라이딩 해준다.
class Quiz {
private final String answer;
public Quiz(String answer){
this.answer=answer;
}
@Override
public boolean equals(Object obj) {
if((obj instanceof Quiz)&& obj != null ) {
return answer ==((Quiz)obj).answer;
} else {
return false;
}
}
}
public class eqtest {
public static void main(String[] args)
{
Quiz q1 = new Quiz("테스트중입니다");
Quiz q2 = new Quiz("테스트중입니다");
if(q1==q2){
System.out.println("같다");
}else{
System.out.println("다르다");
if(q1.equals(q2)){
System.out.println("같다");
}else{
System.out.println("다르다");
}
}
}
결과
다르다
같다
private final String answer;
public Quiz(String answer){
this.answer=answer;
}
@Override
public boolean equals(Object obj) {
if((obj instanceof Quiz)&& obj != null ) {
return answer ==((Quiz)obj).answer;
} else {
return false;
}
}
}
public class eqtest {
public static void main(String[] args)
{
Quiz q1 = new Quiz("테스트중입니다");
Quiz q2 = new Quiz("테스트중입니다");
if(q1==q2){
System.out.println("같다");
}else{
System.out.println("다르다");
if(q1.equals(q2)){
System.out.println("같다");
}else{
System.out.println("다르다");
}
}
}
결과
다르다
같다
이제 Effective JAVA 에 항목 8 'equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자' 참고해서 공부해야겠다.
'Study > Java' 카테고리의 다른 글
[자바퍼즐러 3] 긴 나눗셈 (0) | 2010.12.08 |
---|---|
이진소수점 계산할 때.. (0) | 2010.12.08 |
compareTo (0) | 2010.11.16 |
equals 메소드를 오버라이드 할 때는 hashCode 메소드도 항상 같이 오버라이드 하자 (0) | 2010.11.12 |
equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자 (0) | 2010.11.11 |
finalizer의 사용을 피하자 (0) | 2010.11.09 |
[자바퍼즐러] 홀수판별 (0) | 2010.11.09 |
생성자 대신 static 팩토리 메소드 사용을 고려하자. (0) | 2010.11.09 |
Math.random() (0) | 2010.11.08 |
toCharArray() (0) | 2010.11.08 |