>  기사  >  Java  >  Java에서 같음 메소드와 같음 메소드 구별

Java에서 같음 메소드와 같음 메소드 구별

WBOY
WBOY원래의
2024-02-18 14:17:07573검색

Java에서 같음 메소드와 같음 메소드 구별

Java에서 같음과 같음의 차이에는 특정 코드 예제가 필요합니다.

Java에서는 두 개체가 같은지 비교해야 하는 경우가 많습니다. 이 경우 일반적으로 Java에서는 같음 메서드 또는 같음 메서드를 사용합니다. 비슷해 보이지만 몇 가지 중요한 차이점이 있습니다. 이 기사에서는 같음과 같음의 차이점을 소개하고 특정 코드 예제를 통해 설명합니다.

먼저 Equal Method를 살펴보겠습니다. Equal 메소드는 Object 클래스의 메소드로, Java의 모든 객체는 이 메소드를 호출할 수 있습니다. 이 방법은 참조 비교를 사용합니다. 즉, 두 객체가 동일한 참조를 가지고 있는지 확인합니다. 참조가 동일하면 두 객체는 ​​동일합니다. 다음은 샘플 코드입니다.

String str1 = new String("Hello");
String str2 = new String("Hello");
boolean result = str1.equals(str2);
System.out.println(result); // 输出结果为 true

위 코드에서는 두 개의 문자열 개체 str1과 str2를 만들었습니다. 둘 다 "Hello" 값을 가지고 있습니다. 그러나 이 두 개체는 new 키워드를 통해 별도로 생성되므로 참조가 다릅니다. 그러나 String 클래스는 equals 메소드를 재정의하므로 str1.equals(str2)를 호출하면 true를 반환하여 두 문자열이 동일함을 나타냅니다.

다음으로 Equals 메소드를 살펴보겠습니다. equals 메소드는 Object 클래스의 공개 메소드로, 두 객체의 내용을 비교하기 위해 이를 오버라이드할 수 있습니다. 기본적으로 equals 메소드는 여전히 참조 비교를 사용합니다. 비교 규칙을 사용자 정의하려면 equals 메소드를 재정의해야 합니다. 다음은 샘플 코드입니다.

public class Person {
    private String name;
    private int age;

    // 省略构造函数和其他方法

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }

        Person person = (Person) obj;

        if (age != person.age) {
            return false;
        }
        return name != null ? name.equals(person.name) : person.name == null;
    }

    // 省略hashCode方法和其他方法    
}

위의 샘플 코드에서는 Person 클래스를 생성하고 equals 메서드를 재정의했습니다. equals 메소드를 재정의할 때 먼저 두 객체의 참조가 동일한지 확인합니다. 동일한 경우 직접 true를 반환할 수 있습니다. 그런 다음 obj가 비어 있고 동일한 클래스에 속하는지 확인한 다음 obj를 Person 유형으로 변환하고 name과 age의 값이 같은지 비교합니다.

다음은 Person을 사용하기 위한 샘플 코드입니다.

Person person1 = new Person("Tom", 20);
Person person2 = new Person("Tom", 20);
boolean result = person1.equals(person2);
System.out.println(result); // 输出结果为 true

위 코드에서는 name과 age 값이 동일한 Person 객체인 person1과 person2 두 개를 만들었습니다. person1.equals(person2)를 호출하면 equals 메소드를 다시 작성했기 때문에 비교 중에 name과 age의 값이 비교되므로 반환되는 결과는 true입니다.

요약하자면, 같음과 같음은 Java에서 객체가 같은지 비교하기 위해 일반적으로 사용되는 메서드입니다. 동일 메소드는 참조 비교를 통해 두 객체가 동일한지 확인하는 Object 클래스의 메소드입니다. 실제 개발에서는 특정 요구 사항에 따라 개체를 비교하기 위해 이 두 가지 방법을 선택해야 합니다.

위 내용은 Java에서 같음 메소드와 같음 메소드 구별의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.