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()메서드의 결과를 변형하여 문자열로 리턴한다
- 출력문내에서 생략이가능함.
'개발자 양성과정 필기노트 > JAVA' 카테고리의 다른 글
String / StringBuffer, StringTokenizer (0) | 2021.10.10 |
---|---|
Random, Arrays 클래스 (0) | 2021.10.09 |
Wrapper 클래스 (0) | 2021.10.09 |
오버라이딩 / 오버로딩 / 생성자와 super (0) | 2021.10.02 |
Import / 접근제한자 / 상속 / 생성자 (0) | 2021.10.02 |
댓글