Object와 오버라이딩

자바 2020. 10. 14. 23:33

Object 클래스

모든 클래스의 최상위 클래스(아무것도 상속받지 않으면 자동으로 Object를 상속받기 때문)

Object가 가지고 있는 메서드는 모든 클래스에서 다 사용할 수 있다는 것을 의미

 

equals. toString, hashCode 메서드를 많이 씀

 

equals - 객체가 가진 값을 비교할 때 사용(기준을 정해야지만 비교를 할 수 있음)

 

toString - 객체가 가진 값을 문자열로 반환

 

hashCode - 객체의 해시코드 값 반환

 

Override 메서드

- hashCode

EClipse 상단 메뉴에 Source 클릭 > Generate hashCode( ) and equals( ) 클릭 > 보여주고 싶은 속성 체크

- toString

EClipse 상단 메뉴에 Source 클릭 > Generate toString( ) 클릭 > 보여주고 싶은 속성 체크

 

-----------------------------------

 

 

Student.java

------------------------------------

package JavaStudy;

public class Student {
	String name;
	String number;
	int birthYear;
	
	@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;
	}

	@Override
	public String toString() {
		return "Student [name=" + name + ", number=" + number + ", birthYear=" + birthYear + "]";
	}

	public static void main(String[] args) { // ctrl + space 누르면 main method를 쉽게 만들 수 있음
		Student s1 = new Student();
		s1.name = "홍길동";
		s1.number = "1234";
		s1.birthYear = 1995;
		
		Student s2 = new Student();
		s2.name = "홍길동";
		s2.number = "1234";
		s2.birthYear = 1995;
		
		if(s1.equals(s2))
			System.out.println("s1 == s2");
		else
			System.out.println("s1 != s2");
		
		System.out.println(s1.hashCode());
		System.out.println(s2.hashCode());
		
		System.out.println(s1);
		System.out.println(s1.toString());
	}

}

------------------------------------

 

 

Console

------------------------------------

s1 == s2
1509473
1509473
Student [name=홍길동, number=1234, birthYear=1995]
Student [name=홍길동, number=1234, birthYear=1995]

'자바' 카테고리의 다른 글

StringBuffer  (0) 2020.11.02
Java.lang 패키지/오토 박싱  (0) 2020.10.20
EClipse  (0) 2020.10.14
Network  (0) 2020.07.15
2byte Stream  (0) 2020.07.15
Posted by khon98
,