본문 바로가기
Work/Java

[Java] Object 클래스 - 정리

Object 

  • Object클래스는 모든 클래스의 최상위 클래스
  • 아무것도 상속받지 않으면 자동으로 Object를 상속
  • Object가 가지고 있는 메소드는 모든 클래스에서 다 사용할 수 있다는 것을 의미

 

가장 많이 사용하는 메소드로는 toString(), equals(), hashCode(), 등이 있다.

Java API문서 : http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html

 

 

 

아래에 예제로 import하지않아도 제공되는 object 클래스의 메소드를 사용해보자 

public class Student {
	String name;
	String number;
	String Birth;
	
	Student(String name, String number, String Birth){
		this.name = name;
		this.number = number;
		this.Birth= Birth;
	}

	public static void main(String[] args) {
		Student s1 = new Student("지훈","777","940711");
		Student s2 = new Student("민수","777","940512");
		if(s1.equals(s2)) 
			System.out.println("s1 == s2");
		else
			System.out.println("s1 != s2");
		System.out.println("s1 hashCode : "+ s1.hashCode());
		System.out.println("s2 hashCode : "+ s2.hashCode());
	}
}

 

 

equals() , hashCode() 등의 메소드를 번호만 비교하도록 오버라이딩해보자.

 

public class Student {
	String name;
	String number;
	String Birth;
	
	Student(String name, String number, String Birth){
		this.name = name;
		this.number = number;
		this.Birth= Birth;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((number == null) ? 0 : number.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Student other = (Student) obj;
		if (number == null) {
			if (other.number != null)
				return false;
		} else if (!number.equals(other.number))
			return false;
		return true;
	}
	
	public static void main(String[] args) {
		Student s1 = new Student("지훈","777","940711");
		Student s2 = new Student("민수","777","940512");
		if(s1.equals(s2)) 
			System.out.println("s1 == s2");
		else
			System.out.println("s1 != s2");
		System.out.println("s1 hashCode : "+ s1.hashCode());
		System.out.println("s2 hashCode : "+ s2.hashCode());
	}
}