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;
}
}