Java의 기본 데이터 유형은 "=="를 사용하면 됩니다. 그렇지 않으면 false를 반환합니다. .
obj1==obj2 두 참조 변수 obj1과 obj2가 동일한지, 즉 이들이 가리키는 개체가 동일한 개체인지 확인합니다. 이는 두 변수가 가리키는 메모리 주소가 동일한 경우에만 true가 반환될 수 있다는 의미입니다. 각 개체에는 자체 메모리 조각이 있으므로 true를 반환하려면 동일한 개체를 가리켜야 합니다.
두 객체(하나의 객체가 아닌, 즉 두 객체가 각각 고유한 메모리 조각을 가짐)가 동일한지 여부에 대한 규칙을 사용자 정의하려면 클래스 정의에서 equals(를 다시 작성해야 합니다. object ) 메서드의 경우, equals() 메서드를 재정의하지 않으면 기본 비교 방법은 두 개체가 동일한 개체인지 비교하는 것입니다.
Java API에서 일부 클래스는 equals() 메서드를 재정의합니다. 해당 비교 규칙은 다음과 같습니다. 동일합니다. 비교 결과는 true입니다.
이 클래스에는 String, Double, Float, Long, Integer, Short, Byte, Boolean, BigDecimal, BigInteger 등이 포함됩니다. 너무 많지만 일반적인 클래스는 다음과 같습니다. 구체적인 확인 알아보려면 API 클래스의 equals() 메소드를 사용하세요.
equals() 메서드를 다시 작성하는 단계는 일반적으로 다음과 같습니다.
1 먼저 "=="를 사용하여 동일한지 확인합니다.
2. equals() 메서드의 매개변수가 null인지 확인합니다. null인 경우 현재 개체가 null일 수 없으므로 false를 반환합니다. 그렇지 않으면 java.lang.NullPointerException이 발생합니다.
3. 매개변수가 null이 아닐 때 두 객체(getClass()를 통해 얻은)의 런타임 클래스가 동일하지 않으면 false를 반환하고 그렇지 않으면 계속 판단합니다.
4. 학급 구성원이 동일한지 확인합니다. 그냥 자유롭게 가지고 놀아보세요.
예:
public class Dog { private int age; private String name; public Dog(int age,String name){ this.age=age; this.name=name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public boolean equals(Object obj) { if(obj==null){ return false; } if(this==obj){ return true; } if(obj instanceof Dog){ Dog dog=(Dog)obj; if(dog.age==this.age&&dog.name.equals(this.name)){ return true; }else{ return false; } } return false; } public static void main(String[] args){ Dog dog1=new Dog(12,"wangcai"); Dog dog2=new Dog(12,"wangcai"); Dog dog3=new Dog(16,"wangcai"); System.out.println(dog1.equals(dog2));//true System.out.println(dog1.equals(dog3));//false }}
자바에 대한 자세한 내용은 java기본 튜토리얼을 참조하세요.
위 내용은 자바에서 평등을 결정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!