[JAVA]API _ Object클래스

김나영·2022년 8월 16일
0

JAVA

목록 보기
11/14

Object 클래스

  • 패키지 : java.lang
  • 모든 클래스의 슈퍼 클래스
  • 모든 클래스는 명시하지 않아도 강제로 Object 클래스를 상속 받음
  • 모든 클래스의 타입으로 사용할 수 있음
  • 모든 클래스가 사용할 수 있는 공통 메소드를 가지고 있음

🔎 주요 공통 메소드

메소드역할
boolean equals(Object obj)매개변수 obj 객체와 현재 객체가 동일하면 true 반환
Class getClass()현재 객체의 클래스타입을 반환
int hashCode()현재 객체의 해시코드를 반환
String toString()현재 객체의 정보를 문자열 형태로 반환
void notify()현재 객체의 대기(wait) 중인 하나의 스레드를 깨움
void notifyAll()현재 객체의 대기(wait) 중인 모든 스레드를 깨움
void wait()현재 스레드를 일시적으로 대기(wait)시킴

toString( )

  • Object 클래스의 toString( ) 메소드
    • 객체 정보 확인을 위해서는 toString( )메소드를 만든다.
    • 클래스의 이름과 객체의 해시코드를 @로 연결한 문자열을 반환
    • 객체의 해시코드를 통해서 객체의 참조값을 확인 가능
public String toString() {
	return "이름 : " + name;  //System.out.println(person); 에서 사용됨
}
  • toString( ) 메소드가 사용되는 경우
    • System.out.println( )과 같은 출력 메소드에 객체가 전달되는 경우
    • 문자열 연산에 객체가 사용되는 경우
User user = new User();
System.out.println(user);    //User@7637f22
String message = "Hello" + user;
System.out.println(message);  // Hello User@7637f22

toStirng( ) 오버라이드

  • Object 클래스의 toString( ) 메소드는 객체의 필드 정보를 출력하지 못함
  • 객체의 필드 정보를 출력할 수 있도록 toString( ) 메소드를 오버라이드 하는 것이 일반적임
public class User{
	private String name;
    private int age;
    public User(String name, int age) {
    	this.name = name;
        this.age = age;
    }
}


toString( ) 오버라이드 만드는 방법




equlas()

  • 문자열의 비교는 == 연산을 사용할 수 없기 때문에 동등비교를 사용한다.
  • Object 클래스의 equals() 메소드는 객체의 참조값을 비교해서 같으면 true를 반환한다.
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가 반환된다


equals() 오버라이드

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
profile
응애 나 애기 개발자

0개의 댓글