Object클래스 내장메서드

Object클래스 내장메서드

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()메서드의 결과를 변형하여 문자열로 리턴한다

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

from http://its-joho.tistory.com/106 by ccl(A) rewrite - 2021-10-09 13:01:37