Java 프로그래밍의 Object 클래스 소개
Java 클래스를 정의할 때 부모 클래스가 표시되지 않으면 기본적으로 Object 클래스가 상속됩니다.예:
public class Demo{
// ...
}
실제로는 다음 코드의 약자입니다.
public class Demo extends Object{
// ...
}
Java에서는 기본 형식만 대상이 아닙니다. 예를 들어 수치, 문자, 부울 형식의 값만 대상이 아닙니다. 모든 그룹 형식은 대상 그룹이든 기본 형식이든 모두 Object 클래스에서 계승됩니다.Object 클래스는 일부 유용한 방법을 정의했다. 루트 클래스이기 때문에 이런 방법은 다른 클래스에 모두 존재하고 일반적으로 다시 불러오거나 덮어쓰며 각자의 구체적인 기능을 실현했다.
equals () 메서드
Object 클래스의 equals () 메서드는 한 객체가 다른 객체와 동일한지 확인하는 데 사용됩니다. 구문은 다음과 같습니다.
public boolean equals(Object obj)
예:
obj1.equals(obj2);
Java에서 데이터 등가의 기본적인 의미는 두 데이터의 값이 같다는 것을 가리킨다.equals () 와 "=="를 통해 비교할 때 인용 형식 데이터는 인용, 즉 메모리 주소를 비교하고 기본 데이터 형식은 값을 비교한다.참고:
equals () 메서드는 참조 유형만 비교할 수 있으며 "=="는 참조 유형과 기본 유형을 비교할 수 있습니다.
equals () 방법으로 비교할 때 클래스 File, String, Date 및 패키지 클래스는 인용된 것이 같은 실례인지를 고려하지 않고 유형과 내용을 비교합니다.
"=="로 비교할 때, 기호 양쪽의 데이터 형식은 반드시 일치해야 한다. (자동으로 변환할 수 있는 데이터 형식은 제외) 그렇지 않으면 컴파일이 잘못되고, equals 방법으로 비교한 두 데이터는 모두 인용 형식이면 된다.
hashCode() 메서드
해시 코드(hash Code)는 일정한 알고리즘에 따라 대상이 얻은 수치로 해시 코드가 규칙적이지 않다.만약 x와 y가 다른 대상이라면, x.hashCode () 와 y.hashCode () 는 기본적으로 같지 않을 것이다.
hashCode () 방법은 주로 집합에서 빠른 검색을 실현하는 데 사용되고 대상의 비교에도 사용된다.
Java에서 hashCode에 대한 규정은 다음과 같습니다.
같은 응용 프로그램이 실행되는 동안 같은 대상에 대해hashCode () 를 호출하려면 같은 정수 결과를 되돌려야 합니다. 전제는 equals () 가 비교한 정보가 변경되지 않았다는 것입니다.같은 응용 프로그램이 실행 기간에 따라 얻은 호출 결과는 일치할 필요가 없다.
만약 두 대상이 equals () 방법에 의해 동일하게 간주된다면, 이 두 대상에 대해hashCode () 를 호출하려면 같은 정수 결과를 얻어야 합니다.
만약 두 대상이 equals () 방법에 의해 같지 않다고 간주된다면, 이 두 대상에 대해hashCode () 를 호출하면 서로 다른 정수 결과를 낼 필요가 없습니다.그러나 프로그래머는 서로 다른 대상에 대해 서로 다른 정수 결과를 생성하면hashTable(뒤에 배운 집합 프레임워크의 한 종류)의 효율을 높일 수 있다는 것을 깨달아야 한다.
간단하게 말하면 두 대상이 같다면 그들의hashCode 값은 반드시 같아야 한다.만약 두 대상의hashCode 값이 같다면, 그것들은 반드시 같지 않다.자바 규범에 따르면 일반적으로 equals () 를 덮어쓰는 방법은hashCode () 방법을 덮어써야 한다고 규정하고 있다.
toString() 메서드
toString() 메서드는 Object 클래스에 정의된 또 다른 중요한 메서드로 객체의 문자열 표현 형식이며 구문은 다음과 같습니다.
public String toString()
반환 값은 현재 객체에 대한 정보를 설명하는 String 유형입니다.Object 클래스에서 구현된 toString () 방법은 현재 대상의 형식과 메모리 주소 정보를 되돌려 주는 것이지만, 일부 하위 클래스 (예를 들어 String, Date 등) 에서 다시 쓰기를 하였으며, 사용자 정의 형식에서 toString () 방법을 다시 써서 더 적합한 정보를 되돌려 줄 수도 있다.객체의 toString () 메서드를 명시적으로 호출하는 것 외에 String과 다른 유형의 데이터의 연결 작업을 할 때 toString () 메서드가 자동으로 호출됩니다.
상기 몇 가지 방법은 자바에서 자주 사용되는 것으로 간단하게 소개하여 Object 클래스와 다른 클래스에 대해 알아보도록 합니다. 상세한 설명은 자바 API 문서를 참고하십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.