🔎 주요 공통 메소드
메소드 | 역할 |
---|---|
boolean equals(Object obj) | 매개변수 obj 객체와 현재 객체가 동일하면 true 반환 |
Class getClass() | 현재 객체의 클래스타입을 반환 |
int hashCode() | 현재 객체의 해시코드를 반환 |
String toString() | 현재 객체의 정보를 문자열 형태로 반환 |
void notify() | 현재 객체의 대기(wait) 중인 하나의 스레드를 깨움 |
void notifyAll() | 현재 객체의 대기(wait) 중인 모든 스레드를 깨움 |
void wait() | 현재 스레드를 일시적으로 대기(wait)시킴 |
public String toString() {
return "이름 : " + name; //System.out.println(person); 에서 사용됨
}
User user = new User();
System.out.println(user); //User@7637f22
String message = "Hello" + user;
System.out.println(message); // Hello User@7637f22
public class User{
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
}
public class User {
private String id;
public User(String id) {
this.id = id;
}
public Static void main(String[] args) {
User user1 = new User("admin");
User user2 = new User("admin");
System.out.println(user.equals(user2));
}
}
// 객체 user1과 user2는 아이디가 "admin"으로 동일하나 서로 다른 객체이기 때문에 equals() 메소드를 호출하면 false가 반환된다
Object클래스의 equals() 메소드는 객체의 필드값을 비교하지 못하므로 오버라이드해서 필드값을 비교할 수 있도록 처리함
public class User {
private String id;
public User(String id) {
this.id = id;
}
@Override
public boolean equals(Object obj){
return.id.equals(((User)obj).id);
}
public static void main (String[]args) {
User user1 = new User("admin");
User user2 = new User("admin");
System.out.println(user1.equals(user2));
}
}
// 두 객체의 id문자열이 동일하면 동일한 객체로 판단할 수 있도록 equals()메소드를 오버라이드 함
// 결과는 true