소개
객체 클래스 :이 클래스 java.lang.java 는 기본적으로 모든 클래스가 상속받은 부모 클래스입니다.
객체 클래스에서 일반적으로 사용되는 세 가지 방법 : toString() , equal() , hashCode()
1. TOSTRING () 메소드 객체 및 객체의 자기 소개의 자기 설명
객체의 자체 설명 중에 get() 메소드를 사용하여 인스턴스 변수를 인쇄하는 것이 번거 롭기 때문에 toString() 단순성을 위해 사용됩니다.
public String toString () {return "well well" + getNo () + "name" + getName ();} System.out.println(s); System.out.println(s.toString());
인쇄:
에이. 기본 데이터 유형이있을 때 직접 값을 인쇄하십시오
비. 데이터 유형 및 인쇄를 참조 할 때 toString() 에게 전화하십시오.
객체 클래스의 toString() 메소드가 다시 작성되지 않으면 객체를 직접 인쇄하면 콘솔에서 얻은 결과는 다음과 같습니다.
전체 이름 @ 객체를 포함하는 해시 코드
2. regles equals () 메소드 equals ()가 hashcode ()를 다시 작성해야합니다.
Equals() 두 객체의 내용 또는 두 객체의 내용을 비교합니다. hashCode() 는 객체의 내부 주소이며 정수입니다.
== equals ()의 차이?
답 : = 필수 비교는 이진, 기본 데이터 유형은 숫자 값을 비교하고 참조 데이터 유형 비교 주소를 비교합니다.
Equals() 객체 클래스의 equals() 로 나뉘어 문자열 클래스의 equals() 로 나뉩니다. 객체 클래스의 equals() 는 참조 유형을 비교하는 것과 같습니다. 문자열 클래스의 equals() 는 리터럴 값을 비교하여 객체 클래스의 equals() 메소드를 대체합니다.
인스턴스는 클래스 이름을 결정하거나 반사를 사용할 수 있습니다
객체의 참조 변수 이름 인스턴스 이름 표현식, 객체의 참조 변수 이름이 클래스 또는 기본 클래스 객체 인 경우 리턴 값이 여전히 사실입니다.
Custom equals() 메소드 :
1. 같은 유형
2. 자신의 비교 규칙을 정의하십시오
public boolean equals (객체 개체) {// equals () equals () equals equals equals (equalstest) 객체의 equals (equalStest) 객체; if (equarStest.getClass () == equalStest.class) {//?????????????? true;} else {return false;}} else {return false;}}3. HashCode () 메소드는 검색을 가속화하고 인덱스 검색 (쿼리 알고리즘, 스토리지 알고리즘)을 구현하는 데 사용됩니다.
public int hashcode () {return this.name.hashcode ()*13 + new interger (getage) .hashcode ()*12;}해시 코드의 두 가지 원칙 :
1. 두 객체의 리턴 값이 equals() 하면 hashCode() 메소드도 반환 값이 동일하도록해야합니다.
2. equals() 사용하여 객체에 사용 된 속성을 비교하고 모든 것을 사용하여 hashCode() 계산해야합니다.
hashcode () 해시 알고리즘
필요:
1. hashCode() 의 반환 값은 동일하며 equals() 반환 값도 동일해야합니다.
2. hashCode() 사용할 속성과 equals() 메소드에서 사용할 속성을 다시 작성하십시오.
참고 : 해시 코드는 동일하며 반드시 동일하지는 않습니다.
해시 코드는 폴더를 판단하는 데 사용되며 Equals는 파일을 판단하는 데 사용됩니다.
hashCode() 메소드가 재정의되지 않으면 기본 hashcode () 메소드가 객체의 주소를 기반으로 찾을 수 있습니다 (키 값은 객체의 주소입니다).
hashCode() 메소드를 다시 작성하면 동일한 객체인지 확인하는 데 사용할 수 없습니다.
해시 코드가 동일하다면 System.identityHashCode (객체의 참조 이름)를 사용할 수 있습니다.
System.out.println(System.identityHashCode(对象的引用名));
hashCode() 가없는 경우 해당 해시 코드는 객체 주소로 계산됩니다.
System.out.println(对象引用名.hashCode());
참고 : 요소가 해시 세트 컬렉션에 존재하는지 여부와 작업 종속성을 삭제하는 메소드는 요소의 hashCode() 및 equals() 입니다.
요약
위의 내용은 귀하를 위해 편집 된 Java의 부모 객체의 세 가지 일반적인 방법입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다. wulin.com을 지원 해주셔서 감사합니다.