Object Class

1623 ワード

Objectクラス


:すべてのクラスがobjectクラスを継承します.
ハッシュコード
:バイナリファイル->ハッシュ関数を使用して演算->サイズを小さくします.計算した戻り値をhashコードに入れます.

  • hashCode()は、10進数hashコードを返します.

  • toString()は16進数のhashコードを返します.

  • equals()

  • clone():アクセスが保護されているため、継承アクセスのみでアクセスできます.
  • 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클래스는 인터페이스를 상속받는지 확인하여 상속받으면 클론이 되도록 해놓은 것.
    	}
    }