소개
Object 클래스: 이 클래스 java.lang.java는 모든 클래스가 기본적으로 상속하는 상위 클래스입니다.
Object 클래스에서 일반적으로 사용되는 세 가지 메소드 : toString () , equal() , hashCode()
1. toString() 메소드 객체의 자기 설명, 객체 자기 소개
객체의 자기 설명 과정에서 get() 사용 인스턴스 변수를 인쇄하는 것이 더 번거롭습니다. toString() .
Public String toString(){ Return “学好” + getNo() + “姓名” + getName(); }
System.out.println(s); System.out.println(s .toString());
과 동일 인쇄 시:
a. 기본 데이터 유형을 인쇄할 때 해당 값을 직접 인쇄합니다.
b. 데이터 유형을 참조할 때 인쇄 시 toString()을 호출합니다.
Object 클래스의 toString() 메서드가 재정의되지 않으면 개체가 직접 인쇄되고 콘솔에서 얻은 결과는 다음과 같습니다.
객체의 전체 이름@hashCode를 포함합니다
2. equals() 메서드는 equals()를 다시 작성할 때 hashCode()를 다시 작성해야 합니다.
Equals()는 두 객체를 비교합니다. 두 객체의 내용은 객체의 내부 내용입니다.
==와 같음()의 차이점은 무엇인가요?
답: ==실제 비교는 바이너리, 기본 데이터 유형은 숫자 값과 비교, 참조 데이터 유형은 주소와 비교
Equals()는 equals()로 나뉩니다. 및 String of Object 클래스 클래스의 equals(), Object 클래스의 equals()는 참조 유형의 == 비교와 동일합니다. 리터럴 값을 비교합니다. <… 다음 클래스 이름의 클래스 객체 반환 값은 여전히 true입니다.
사용자 정의 equals() 메서드:
1. 유형은 동일합니다.
2. 직접 정의합니다. 비교 규칙
public boolean equals(Object object){ //重写Object的equals()方法 EqualsTest equalsTest = (EqualsTest) object; if(equalsTest.getClass() == EqualsTest.class){ //??????????? if((this.name==equalsTest.name)&&(this.price== qualsTest.price)){ return true; }else{ return false; } }else{ return false; } }
Public int hashCode(){ Return this.name.hashCode()*13 + new Interger(getAge).hashCode()*12; }
1. 두 개체의 equals() 메서드 비교 반환 값이 true인 경우 hashCode() 메서드도 반환 값이 다음과 같은지 확인해야 합니다. 동일합니다.
2. equals()를 사용하여 비교할 객체에 사용된 속성은 hashCode()를 계산하는 데 사용되어야 합니다.
hashCode() 해시 알고리즘
요구 사항:
1. hashCode()의 반환 값은 동일해야 하며, equals()의 반환 값도 동일해야 합니다. 동일합니다.
2. hashCode()에서 사용되는 속성과 equals() 메서드에서 사용해야 하는 속성을 다시 작성합니다.
참고: hashCode는 동일하지만 같음은 반드시 동일하지는 않습니다.
hashCode는 폴더를 판별하는 데 사용되고, equals는 파일을 판별하는 데 사용됩니다.
hashCode() 메소드를 재정의하지 않으면 객체의 주소를 기준으로 기본 hashCode() 메소드가 계산됩니다. (키 값은 객체의 주소입니다.)
If hashCode()를 재정의하면 동일한 객체인지 확인하는 데 메서드를 사용할 수 없습니다.
는 System.identityHashCode(객체의 참조 이름)를 사용할 수 있습니다. hashCode가 동일하면 동일한 객체입니다. .
System.out.println(System.identityHashCode(객체 참조 이름));
hashCode()가 없으면 객체 주소에서 객체의 hashCode를 계산합니다.
System.out.println(객체 참조 이름.hashCode());
참고: 요소가 HashSet 컬렉션에 존재하는지 여부와 삭제 작업은 요소의 hashCode() 및 같음에 따라 다릅니다. ( )
요약
위 내용은 Java의 상위 클래스 Object의 세 가지 일반적인 메서드입니다. 궁금한 사항이 있으면 메시지를 남겨주세요. PHP 중국어 네트워크 지원에 감사드립니다.
Java의 상위 클래스 Object의 일반적인 메소드를 요약한 관련 기사를 더 보려면 PHP 중국어 웹사이트에 주목하세요!