JAVA) 최상위 클래스 Object

Daehwan Jung·2022년 9월 29일
1

JAVA

목록 보기
7/15

최상위 클래스 Object

모든 클래스의 조상 Object


컴파일러는 아무런 클래스도 상속하지 않으면 자동으로 extends Object를 삽입해 Object클래스를 상속한다.

class A{
	...
}

class B extends A{
	...
}

클래스 A를 상속받아 클래스 B를 만들었을 때 부모 클래스 A는 아무것도 상속하지 않았다. 이렇게 되면 컴파일러는 extends Object를 삽입하고 결국 Object<-A<-B의 상속관계가 만들어 진다.

Object 클래스의 주요 메서드

toString() : 객체 정보를 문자열로 리턴하는 메서드 패키지명.클래스명@해시코드로 나타난다.

equals(Object obj) : 입력매개변수로 넘어온 객체와 자기 객체의 스택 메모리 변숫값을 비교해 그 결과를 true 또는 false로 리턴하는 메서드다.

hashCode() : 객체에 대한 해쉬 코드를 반환한다.
Object clone() : 객체 자신의 복사본을 생성하여 반환한다.

* equals(Object obj)

실제 내용을 비교하고자 할 떄는 equls()메서드를 오버라이딩해 사용해야 한다.

class B{
	String name;
    B(String name){
		this.name;
        }
        
   @Override
   publice boolean equals(Object obj){	
   		if(obj instanceof B){
        	if(this.name==((B) obj).name)
            	return true;
                }
                return false;
          }
}

객체 타입을 일치시키기 위해 캐스팅을 할 수 있는지를 확인하는 instanceof 키워드와 다운캐스팅을 사용했다. 이렇게 되면 클래스 B의 equals()는 이제 위칫값이 아니라 내용을 비교하게 된다.

0개의 댓글