본문 바로가기
[JAVA]/[자바 기초]

[자바 기초] Object 클래스

by 북방바다코끼리표범 2023. 8. 11.

복습

https://shins99.tistory.com/38

 

[자바 기초] 인터페이스 (Interface)

복습 https://shins99.tistory.com/37 [자바 기초] String 클래스 복습 https://shins99.tistory.com/36 [자바 기초] 템플릿 메서드 패턴 (Template Method Pattern) 복습 https://shins99.tistory.com/35 [자바 기초] 추상 클래스 복습

shins99.tistory.com


💡  학습목표
 1. Object가 무엇인지 알아보자
 2. 간단하게 예제를 풀어보자

 

Object 클래스

- 모든 클래스의 최상위 클래스

→ 모든 클래스는 Object 클래스에서 상속 받음 (extends 키워드 생략)

→ Object 클래스의 메서드 일부를 재정의해서 사용 가능

 

 

java.lang 패키지

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

- import.java.lang.*;

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

- String, System...

 

toString() 메서드

- 객체 정보를 String 타입으로 바꿔 사용할 때 쓰임

 

equals() 메서드

- 두 객체의 주소 값이 동일하면 true 반환

- 주소값이 달라도 두 객체가 논리적으로 동일하면 true 반환

// 모든 클래스의 최상의 클래스는 Object 클래스이다. 
public class Book extends Object {
	
	private int bookId;
	private String title; 
	private String author;
	
	public Book(int bookId, String title, String author) {
		super();
		this.bookId = bookId;
		this.title = title;
		this.author = author;
	}
	
	public int getBookId() {
		return bookId;
	}

	public String getTitle() {
		return title;
	}

	public String getAuthor() {
		return author;
	}

	// 필요하다면 toString 메서드를 재정의 할 수 있습니다. 
	@Override
	public String toString() {
		return this.bookId + ", " + this.title + ", " + this.author;
	}
	
	// 아주 간혹 코딩테스트 나울 수 있다. 
	// equals 메서드를 재정의 해보자.
	// 실제 존재하는 책1, 책2 가정 
	// 책이름이 같고 저자이름 같다면 논리적으로 같은 책이라 
	// 판별하는 기능을 만들어 보자. 
	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Book) {
			// 여기안에서 검사
			Book target = (Book)obj;
			if(this.title == target.title) {
				return true;
			}
		} 
		
		return false;
	}
	
}

package ch13;

import java.util.List;

public class MainTest1 {

	public static void main(String[] args) {
		
		//List list; 
		
		// 자바에서 상속은 단일 상속만을 지원합니다. 
		// 단, Object 클래스를 제외하고
		Book book1 = new Book(1, "홍길동전", "허균");
		Book book2 = new Book(2, "홍길동전", "허균");
		Book book3 = new Book(2, "흐르는강물처럼", "파울로코엘료");
		
		if(book1 == book2) {
			System.out.println("물리적으로 같아요");
		} else {
			System.out.println("물리적으로 달라요");
		}
		System.out.println("---------------------------");
		
		if(book1.equals(book2)) {
			System.out.println("같은 책입니다.");
		} else {
			System.out.println("다른 책입니다.");
		}
		
	}
}