Object Class

jinkyung·2021년 1월 13일
0

JAVA

목록 보기
16/29

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클래스는 인터페이스를 상속받는지 확인하여 상속받으면 클론이 되도록 해놓은 것.
	}
}

0개의 댓글

관련 채용 정보