본문 바로가기
개발자 양성과정 필기노트/JAVA

Object클래스 내장메서드

by jono 2021. 10. 9.

 1. getClass() 

리턴-> class [패키지명].클래스명

  

 2. getName() 

리턴-> [패키지명].클래스명

- Object클래스 자체 인스턴스의 패키지는 java.lang이다. 

 

 3. hashCode() 

- 객체의 주소값을 정수로 변환한 값을 출력한다. 

 

 

 4. 기준값.equals(비교값) 

- 기준값과 파라미터로 전달된 비교값의 주소를 비교하여 true / false를 리턴한다.

- equals()메서드는 주소값을 비교하므로, 두 객체에 저장된 데이터를 비교할때에는 적합하지않다.

Person p1 = new Person("홍길동",20);
Person p2 = new Person("홍길동",20);
p1.equals(p2) // false

- 따라서 equals()메서드를 오버라이딩하여 두객체의 실체값을 제대로 비교할 수 있도록 해야한다.

-> 오버라이딩-> 매개변수를 Object클래스로 업캐스팅 -> 해당클래스로 다시 다운캐스팅 처리를 하여 두 객체를 비교해야한다.

!주의) int데이터타입은 ==동등비교연산자를 사용하고, String데이터타입은 equals()메서드 이용해야함.

public class Ex01 {
public static void main(String[] args) {
	EqualsPerson eq1 = new EqualsPerson("홍길동",20);
	EqualsPerson eq2 = new EqualsPerson("홍길동",20);
	
	if(eq1.equals(eq2)){System.out.println("같다");} //출력
    	else{System.out.println("다르다");}
}}

class EqualsPerson{
	String name; int age;
    Public EqualsPerson(String name, int age){ //생성자
    	super();
        this.name = name; this.age = age;}
    
    @Override //equals()메서드 오버라이딩
    public boolean equals(Object obj){//매개변수를 Object로 업캐스팅하여 전달받는다
    	EqualsPerson p = (EqualsPerson)obj; //해당클래스로 다시 다운캐스팅한다
        if(age==p.age && name.equals(p.name){//실제값을 비교하여 모두 동일할때만 true반환
        	return true;}
        return false;
    }
}

 

 5. toString() 

- 객체의 정보를 문자열로 변환하여 리턴한다.

- getClass()와 hashCode()메서드의 결과를 변형하여 문자열로 리턴한다

- 출력문내에서 생략이가능함.

댓글