Java에서 상위 클래스 Object의 일반적인 방법 요약
Object 클래스: 이 클래스
java.lang.java
는 모든 클래스에서 기본적으로 상속되는 상위 클래스입니다.Object 클래스에서 자주 사용하는 세 가지 방법:
toString()
, equal()
, hashCode()
1. toString() 메소드 객체에 대한 자기설명, 객체에 대한 자기소개대상의 자기 묘사 과정에서 사용
get()
방법으로 실례 변수를 인쇄하는 것이 비교적 번거롭기 때문에 간편하기 위해 사용toString()
.
Public String toString(){
Return “ ” + getNo() + “ ” + getName();
}
System.out.println(s);
해당인쇄:
a. 기본 데이터 형식의 값을 직접 인쇄합니다.
b. 데이터 형식을 인용할 때 호출
System.out.println(s.toString());
인쇄Object 클래스의
toString()
메서드가 없을 때 객체를 직접 인쇄하여 콘솔에서 얻은 결과는 다음과 같습니다.패키지 이름 @ 객체의 hashCode
2. equals () 방법은 equals () 를 다시 쓰려면 hashCode () 를 다시 써야 합니다.
toString()
두 대상 또는 두 대상의 내용을 비교한다.Equals()
는 객체의 내부 주소이며 정수입니다.= = equals()와의 차이점?
답: = 실질적으로 비교하는 것은 2진법이고 기본 데이터 유형은 수치이며 인용 데이터 유형은 주소이다
hashCode()
는 Object 클래스Equals()
와 String 클래스equals()
로 나뉘는데 Object 클래스equals()
는 = 인용 유형 상황에 해당한다.String 클래스의 equals()
Object 클래스의 equals()
방법을 다시 썼습니다. 비교한 것은 글자 값입니다.Instanceof 판단 클래스 이름 또는 반사 사용 가능
대상의 인용 변수 이름 instanceof 클래스 이름 이 표현식, 대상의 인용 변수 이름이 뒤에 있는 클래스나 기본 클래스 대상이면 반환값은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;
}
}
3. hashCode() 방법은 검색을 가속화하고 색인 검색(검색 알고리즘, 저장 알고리즘)을 실현하는 데 사용된다
Public int hashCode(){
Return this.name.hashCode()*13 + new Interger(getAge).hashCode()*12;
}
hashCode의 두 가지 원칙:1.두 대상
equals()
의 방법이 반환치가true일 때 그들equals()
의 방법도 반환치가 같다는 것을 보증해야 한다.2.대상에 사용된 속성
hashCode()
을 비교하여 계산해야 한다equals()
.hashCode() 해시 알고리즘
요구 사항:
1.
hashCode()
반환값이 같고 hashCode()
반환값도 반드시 같아야 한다.2.다시 쓰기
equals()
는 어떤 속성을 사용했는지, hashCode()
방법에서도 어떤 속성을 사용했는지.주:hashCode는 같고, equals는 반드시 같지 않습니다.
hashCode는 폴더를 판단하는 데 사용되고, equals는 파일을 판단하는 데 사용됩니다.
equals()
방법을 다시 쓰지 않으면 기본적인hashCode () 방법은 대상의 주소에 따라 구합니다. (키 값은 대상의 주소입니다.)다시 쓴다면
hashCode()
방법은 같은 대상인지 아닌지를 판단할 수 없고,(대상의 인용명)hashCode가 같으면 같은 대상을 사용할 수 있습니다.
hashCode()
만약 System.identityHashCode
이 없다면, 그 대상의 해시코드는 대상 주소를 통해 계산된다.System.out.println(System.identityHashCode( ));
참고: HashSet 컬렉션에서 요소의 존재 여부와 삭제 작업에 의존하는 방법은 요소의 hashCode()
및 System.out.println( .hashCode());
총결산이상은 여러분을 위해 정리한 자바의 부류 Object의 세 가지 상용 방법입니다. 여러분께 도움이 되었으면 좋겠습니다. 의문이 있으면 댓글로 소통해 주십시오. 저희에 대한 지지에 감사드립니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.