>  기사  >  Java  >  Java의 상위 클래스 Object의 일반적인 메소드 요약

Java의 상위 클래스 Object의 일반적인 메소드 요약

高洛峰
高洛峰원래의
2017-01-17 16:56:391132검색

소개

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()는 참조 유형의 == 비교와 동일합니다. 리터럴 값을 비교합니다.

사용자 정의 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인 경우 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 중국어 웹사이트에 주목하세요!

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