==equals와 도대체 무엇이 다른가(둘)

1855 단어 equals
equals 방법은 Object 클래스가 제공하는 실례적인 방법입니다.그래서 모든 인용 변수는 이 방법을 사용해서 다른 인용 변수와 같은지 아닌지를 판단할 수 있다.그러나 이 방법은 두 대상이 같다는 기준을 ==와 구별하지 않고 두 인용 변수가 같은 대상을 가리킬 때true로 되돌아오도록 요구한다.그래서 Object가 제공하는 equals 방법은 큰 실질적인 의미가 없다.이로써 이퀄스를 다시 쓰는 방법이 생겼다.equals () 를 어떻게 다시 쓰는지 소개하지 않겠습니다.
 
스트링의 많은 변수가 equals 방법으로 같은지 비교할 수 있다는 의문도 제기되고 있다.그것은 String이 Object의 equals 방법을 다시 썼기 때문이다.String의 equals () 방법으로 두 문자열이 같은지 아닌지를 판단하는 기준은 두 문자열에 포함된 문자열이 같으면true를 되돌려주고 그렇지 않으면false를 되돌려줍니다.예를 들면 다음과 같습니다.
public static void main(String[] args) {

	String str1 = new String("Fire");
	String str2 = new String("Fire");
	System.out.println(str1 == str2);
	System.out.println(str1.equals(str2));
}

인쇄 결과:
false
true

 
다음 예는 다음과 같습니다.
public static void main(String[] args) {

	Persion p1 = new Persion();
	Persion p2 = new Persion();
	System.out.println(p1.equals(p2));
}

분명히 false를 인쇄합니다.
 
그러나 다음과 같은 상황에 주의해야 한다.
public static void main(String[] args) {
	String str1 = "Fire";
	String str2 = "Fire";
	String str3 = new String("Fire");
	String str4 = new String("Fire");

	System.out.println(str1 == str2);
	System.out.println(str3 == str4);
	System.out.println(str1 == str3);
	System.out.println(str3.equals(str4));
	System.out.println(str1.equals(str4));
}

 
인쇄 결과는 다음과 같습니다.
true
false
false
true
true

 
str1 = str2는true를 반환합니다.그건 나도 잘 이해가 안 돼.String이 직접'Fire'로 값을 부여하는 것과 new에서 나오는 세부 사항의 차이가 어디에 있는지 모르겠다.나중에 이해되면 진일보한 해석을 하겠습니다.아시는 분들도 가르침을 아끼지 마세요..

좋은 웹페이지 즐겨찾기