자바 의 "="과 equals () 방법의 차이

1629 단어 자바equals==
1、“==”
 
    1) 두 기본 데이터 형식의 데이터 가 같은 지 비교 하 는 데 사용 되 며 메모리 에 저 장 된 값 이 같은 지 비교 합 니 다.
    예: int a = 100;
           int b=100;
    a = = b 결 과 는 true 입 니 다.
 
    2) 두 인용 변수 가 같은 대상 을 가리 키 는 지 판단 하 는 데 사용 된다.
    예: String a = "abc";
           b=a;
    a = = b 결 과 는 true 입 니 다.
    그리고 String a = "abc";
              String b="abc";
    a = = b 결 과 는 여전히 true 입 니 다.(문자열 상수 탱크 의 같은 대상 을 가리 키 는 것)
 
2. equals () 방법
 
    1) 두 인용 변수 가 가리 키 는 대상 값 이 같 는 지 비교 하 는 데 사용 된다.
    예: String a = new String ("abc");
           String b=new String("abc");
    a = = b 결 과 는 false 이 고 a. equals (b) 결 과 는 true 입 니 다.
 
    2) 사용자 정의 클래스 에 대해 서 는 기본적으로 Object 대상 의 equals () 방법 을 계승 합 니 다. 코드 는 다음 과 같 습 니 다.
public boolean equals(Object o){
	return this==o;
}

    결론:
    a) 사용자 정의 클래스 에 Object 를 덮어 쓰 는 equals () 방법 이 없 으 면 equals () 의 효 과 는 '= =' 을 사용 하 는 것 과 마찬가지 로 두 인용 변수 가 같은 대상 을 가리 키 는 지 비교 합 니 다.
    b) 사용자 정의 클래스 의 두 대상 이 같은 지 비교 하려 면 Object 의 equals () 방법 을 덮어 쓰 고 자신의 비교 규칙 을 정의 해 야 합 니 다.
    예 를 들 면:
public class Person{
	private String name;
        public void setName(String name){
		this.name=name;
	}
	public String getName(){
		return name;
	}
	public boolean equals(Object obj){
		if(this==obj){
			return true;
		}
		Person p=(Person)obj;
		return p.getName().equals(this.name); 
	}
}

좋은 웹페이지 즐겨찾기