Object 클래스
- Object클래스는 모든 클래스의 최고 조상이기 때문에 Object클래스의 멤버들은 모든 클래스에서 바로 사용 가능함.
- Object 클래스는
멤버변수는 없고
오직 11개의 메서드
만 가지고 있음.
notify()
, wait()
등은 쓰레드와 관련된 메서드.
class Class()
: 클래스의 정보를 담기 위한 클래스
Hello.java 를 컴파일하면 Hello.class 파일이 만들어짐. 즉, Hello의 class 객체가 생성되는 것.
Reflection API
- protected 로 되어 있는 것은 public으로 오버라이딩을 해줘야함.
equals(Object obj)
- 객체 자신(this)과 주어진 객체(obj)를 비교함. 같으면 true 다르면 false.
- Object 클래스의 equals()는
객체의 주소를 비교(참조변수 값 비교)
class Person {
long id;
Person(long id) {
this.id = id;
}
...코드생략...
class Ex9_2 {
public static void main(String[] args) {
Person p1 = new Person(8011081111222L);
Person p2 = new Person(8011081111222L);
if(p1.equals(p2))
System.out.println("p1과 p2는 같은 사람입니다.");
else
System.out.println("p1과 p2는 다른 사람입니다.");
}
- 위의 코드는 객체의 주소(참조변수 값)를 비교했기 때문에 p1과 p2가 다른 사람이라는 결과가 나옴.
- 매개변수로 받은 값을 비교하려면
Object의 equals()를 오버라이딩
하여 값을 비교해야함. 참조변수 형변환 전에는 반드시 instanceof
로 확인!
class Person {
long id;
Person(long id) {
this.id = id;
}
public boolean equals(Object obj) {
if(obj instanceof Person)
return id ==((Person)obj).id;
else
return false;
}
}