Java/정리

Object클래스

낭구리 2021. 9. 1. 18:27

java.lang 패키지

● 프로그래밍시 import 하지 않아도 자동으로 imort됨

● import.java.lang.*;

● 많이 사용하는 기본 클래스들이 속한 패키지

● String, System...

모든 클래스는 Object 클래스를 상속 받는다

● java.lang.Object 클래스

● 모든 클래스의 최상위 클래스는

● 모든 클래스는 Object에서 상속받고, Object 클래스의 메서드 중 일부는 재정의해서 사용할 수 있음

● 컴파일러가 extends Object를 추가함

● class Student => class Student extends Object

toString() 메서드

객체의 정보를 String으로 바꾸어서 사용할 때 쓰임

많이 사용하는 String은 이미 재정의 되어 있음

toString()메서드 재정의 예

class Book{
	
	private String title;
	private String author;
	
	public Book(String title, String author) {
		this.title = title;
		this.author = author;
	}
	
	public String toString() {
		return title + "," + author;
	}
	
}

public class BookTest {

	public static void main(String[] args) {

		Book book = new Book("데미안", "헤르만 헤세");
		
		System.out.println(book);
	}
}

equals() 메서드

두 인스턴스의 주소 값을 비교하여 true/false를 반환

재정의 하여 두 인스턴스가 논리적으로 동일함의 여부를 구현함

인스턴스가 다르더라도 논리적으로 동일한 경우 true를 반환하도록 재정의 할 수 있음

(같은 학번, 같은 사번, 같은 아이디의 회원...)

class Book {
	private int bookId;
	private String title;
	private String author;

	public Book(int id, String title, String author) {
		this.bookId = id;
		this.title = title;
		this.author = author;
	}

	// toString 메서드 재정의
	@Override
	public String toString() {
		return bookId + "," + title + "," + author;
	}

	// equals 메서드 재정의
	@Override
	public boolean equals(Object obj) {
		if (obj instanceof Book) { // --> true 이면 if 안에 로직 실행
			Book tempBook = (Book) obj;
			if (this.title == tempBook.title && this.author == tempBook.author) {
				return true;
			} else {
				return false;
			}
		}
		return false;
	}
}