"안녕, 아미고!"
"안녕!"
"오늘 우리는 Object 클래스를 공부할 것입니다.
당신은 이미 그것을 접했고 Object가 모든 클래스의 기본 클래스라는 것을 알고 있습니다. 실질적으로 데이터는 없지만 몇 가지 메서드가 있습니다."
"메소드가 필요한 이유는 무엇입니까? Object 클래스의 인스턴스를 실제로 생성하는 사람이 있습니까?"
"이렇게 보세요. Object 클래스의 메서드는 모든 클래스에서 공통적입니다. 즉, Java 작성자는 모든 클래스에 있어야 하는 몇 가지 메서드를 식별하여 Object 클래스에 추가했습니다."
"다형성(파생 클래스에서 Object 클래스의 메서드를 재정의하는 기능)과 결합하면 매우 강력한 도구가 됩니다."
"이러한 방법이 무엇인지 봅시다:"
방법 | 설명 |
---|---|
|
개체의 문자열 표현을 반환합니다. |
|
개체를 비교하는 데 사용되는 한 쌍의 메서드입니다. |
|
현재 클래스를 설명하는 특수 개체를 반환합니다. |
|
다른 스레드에서 객체에 대한 액세스를 제어하는 방법. 스레드 동기화용. |
|
이 방법을 사용하면 파일 닫기, 스트림 등의 네이티브 비 Java 리소스를 해제할 수 있습니다. |
|
이 방법을 사용하면 개체를 복제할 수 있습니다. 개체의 복제본을 만듭니다. |
"이러한 방법은 6개의 그룹으로 나눌 수 있습니다. 당신은 이미 그 중 일부에 익숙하며 나머지는 다음 단원에서 알게 될 것입니다."
"어떤 이유에서인지 여기서 유용한 정보가 보이지 않습니다."
"아미고! 이 메서드가 중요하지 않았다면 모든 단일 개체에 추가하지 않았을 것입니다! 따라서 이것이 무엇이며 왜 필요한지 더 자세히 살펴보라고 조언합니다. 중요하지 않은 것 같으면 , 그렇다면 당신은 무언가를 이해하지 못했거나 무언가를 올바르게 이해하지 못한 것입니다."
"알겠습니다. 잘 듣겠습니다."
"toString() 메서드부터 시작하겠습니다.
"이 방법을 사용하면 모든 개체에 대한 텍스트 설명을 얻을 수 있습니다. Object 클래스에서의 구현은 매우 간단합니다."
return getClass().getName() + "@" + Integer.toHexString(hashCode());
"getClass() 및 hashCode()도 Object 클래스의 메서드입니다.
이 메서드를 호출하면 일반적으로 다음과 같은 결과가 생성됩니다."
java.lang.Object@12F456
"그렇다면 그런 설명이 무슨 소용이 있겠습니까?"
"이 설명을 통해 메서드가 호출된 개체의 클래스를 알 수 있습니다. 또한 개체를 구별할 수 있습니다. 다른 개체는 @ 기호 뒤에 다른 숫자가 있습니다."
"하지만 이 메서드의 실제 가치는 다른 곳에 있습니다. 이 메서드는 더 자세하거나 적합한 개체 설명을 반환하기 위해 모든 클래스에서 덮어쓸 수 있습니다."
"하지만 더 있습니다. 각 개체의 텍스트 표현을 얻을 수 있기 때문에 Java는 문자열을 개체에 '추가'하는 지원을 구현하는 것을 가능하게 했습니다. 확인하십시오.
"
암호 | 실제로 일어나는 일 |
---|---|
|
|
|
|
|
|
"예, 저는 이것을 정기적으로 사용합니다. 특히 프로그램을 작성하거나 버그를 찾을 때 유용합니다. 유용한 작업입니다."
GO TO FULL VERSION