Object 클래스
: 모든 클래스는 object 클래스를 상속받는다.
Hash 코드
: 바이너리 파일 -> 해시함수로 연산 -> 사이즈를 줄여준다. 연산한 리턴 값을 hash코드로 넣는다.
hashCode()가 반환하는 것은 10진수의 hash 코드이다.
toString()이 반환하는 것은 16진수의 hash코드이다.
equals()
clone() : 접근이 protected이므로 상속을 통해서만 접근이 가능하다.
package com.bit.day09.am;
import java.util.Arrays;
public class Ex04 {
public static void main(String[] args) {
Object obj=new Object();
System.out.println(obj);
System.out.println(obj.toString());
System.out.print("클래스정보");
System.out.print('@');
System.out.println(obj.hashCode()); //10진수로 반환
// java.lang.Object@15db9742
// java.lang.Object@15db9742
// 클래스정보@366712642
Object obj2=new Object();
//equals 메소드를 오버라이딩 시켜 value값 비교하는 것
System.out.println(obj.equals(obj2));
Object obj3=obj1.clone(); //오류 : protected
Ex04 me=new Ex04();
// Object obj4=me.clone(); 오류
int[] arr={1,3,5};
System.out.println(arr);
//배열 복사의 또다른 방법 object클래스의 clone()을 이용
//배열을 클론으로 복사. 타입은 object (배열 타입을 upcasting)
//그냥 클론하면 오류가 뜬다.
Object obj3=arr.clone();
System.out.println(obj3); //주소값 출력
int[] arr2=(int[])obj3; //obj3는 주소값은 arr의 주소이고 그것을 arr2에 넣었다.
System.out.println(Arrays.toString(arr2));
//클래스가 interface cloneable을 implements 한다면 25번 라인 Object obj4=me.clone();가 가능해진다.
//object클래스는 인터페이스를 상속받는지 확인하여 상속받으면 클론이 되도록 해놓은 것.
}
}