모든 Object 클래스 메서드 및 toString() 메서드에 대한 추가 정보 - 1

"안녕, 아미고!"

"안녕!"

"오늘 우리는 Object 클래스를 공부할 것입니다.
당신은 이미 그것을 접했고 Object가 모든 클래스의 기본 클래스라는 것을 알고 있습니다. 실질적으로 데이터는 없지만 몇 가지 메서드가 있습니다."

"메소드가 필요한 이유는 무엇입니까? Object 클래스의 인스턴스를 실제로 생성하는 사람이 있습니까?"

"이렇게 보세요. Object 클래스의 메서드는 모든 클래스에서 공통적입니다. 즉, Java 작성자는 모든 클래스에 있어야 하는 몇 가지 메서드를 식별하여 Object 클래스에 추가했습니다."

"다형성(파생 클래스에서 Object 클래스의 메서드를 재정의하는 기능)과 결합하면 매우 강력한 도구가 됩니다."

"이러한 방법이 무엇인지 봅시다:"

방법 설명
public String toString()
개체의 문자열 표현을 반환합니다.
public native int hashCode()
public boolean equals(Object obj)
개체를 비교하는 데 사용되는 한 쌍의 메서드입니다.
public final native Class getClass()
현재 클래스를 설명하는 특수 개체를 반환합니다.
public final native void notify()
public final native void notifyAll()
public final native void wait(long timeout)
public final void wait(long timeout, intnanos)
public final void wait()
다른 스레드에서 객체에 대한 액세스를 제어하는 ​​방법. 스레드 동기화용.
protected void finalize()
이 방법을 사용하면 파일 닫기, 스트림 등의 네이티브 비 Java 리소스를 해제할 수 있습니다.
protected native Object clone()
이 방법을 사용하면 개체를 복제할 수 있습니다. 개체의 복제본을 만듭니다.

"이러한 방법은 6개의 그룹으로 나눌 수 있습니다. 당신은 이미 그 중 일부에 익숙하며 나머지는 다음 단원에서 알게 될 것입니다."

"어떤 이유에서인지 여기서 유용한 정보가 보이지 않습니다."

"아미고! 이 메서드가 중요하지 않았다면 모든 단일 개체에 추가하지 않았을 것입니다! 따라서 이것이 무엇이며 왜 필요한지 더 자세히 살펴보라고 조언합니다. 중요하지 않은 것 같으면 , 그렇다면 당신은 무언가를 이해하지 못했거나 무언가를 올바르게 이해하지 못한 것입니다."

"알겠습니다. 잘 듣겠습니다."

"toString() 메서드부터 시작하겠습니다.

"이 방법을 사용하면 모든 개체에 대한 텍스트 설명을 얻을 수 있습니다. Object 클래스에서의 구현은 매우 간단합니다."

return getClass().getName() + "@" + Integer.toHexString(hashCode());

"getClass() 및 hashCode()도 Object 클래스의 메서드입니다.
이 메서드를 호출하면 일반적으로 다음과 같은 결과가 생성됩니다."

java.lang.Object@12F456

"그렇다면 그런 설명이 무슨 소용이 있겠습니까?"

"이 설명을 통해 메서드가 호출된 개체의 클래스를 알 수 있습니다. 또한 개체를 구별할 수 있습니다. 다른 개체는 @ 기호 뒤에 다른 숫자가 있습니다."

"하지만 이 메서드의 실제 가치는 다른 곳에 있습니다. 이 메서드는 더 자세하거나 적합한 개체 설명을 반환하기 위해 모든 클래스에서 덮어쓸 수 있습니다."

"하지만 더 있습니다. 각 개체의 텍스트 표현을 얻을 수 있기 때문에 Java는 문자열을 개체에 '추가'하는 지원을 구현하는 것을 가능하게 했습니다. 확인하십시오.
"

암호 실제로 일어나는 일
int age = 18;
System.out.println("Age is " + age);
String s = String.valueOf(18);
String result = "Age is " + s;
System.out.println(result);
Student st = new Student("Vincent");
System.out.println("Student is " + st);
Student st = new Student("Vincent");
String result = "Student is " + st.toString();
System.out.println(result);
Car car = new Porsche();
System.out.println("My car is " + car);
Car car = new Porsche();
String result = "My car is " + car.toString();
System.out.println(result);

"예, 저는 이것을 정기적으로 사용합니다. 특히 프로그램을 작성하거나 버그를 찾을 때 유용합니다. 유용한 작업입니다."