자바
Object 클래스
섹시꽃남민우
2023. 2. 20. 17:19
Object 클래스 - 모든 클래스의 최상위 클래스
Object 란 java.lang.* 패키지에 존재하면 모든 클래스의 최상의 클래스 이다.
toString() : Object 클래스에 있는 메소드 이며 자신에 주소 값을 String 으로 반환할 수 있고 필요하다면 자식 클래스에서 재정의 가능하다.
equals() : Object 클래스에 존재하는 메서드 이며 필요에 의해 자식 클래스에서 재 정의 가능하다.
package ch07;
/**
* Object 클래스에 이해
* 자바는 단일 상속만을 지원한다.
* 하지만 모든 클래스의 최상위 클래스 Object 클래스는 예외 이다.
*/
public class Book {
private int bookId;
private String title;
private String author;
public Book(int bookId, String title, String author) {
this.bookId = bookId;
this.title = title;
this.author = author;
}
// 코드힌트 살펴 보기
// extends Object 키워드를 작성하지 않더라도 컴파일러가 .class 생성시
// 자동으로 넣어 준다.
// toString() <-- Object 클래스에 메서드 이다.
@Override
public String toString() {
return "[ "+this.title+" ]";
}
// equals 메서드 재정의 하기
// 책 제목과 작가이름이 같다면 같은 책이라고 판별 해보자
@Override
public boolean equals(Object obj) {
// 만약 외주에서 주입된 값에 title 과 author 이 같다면 true를 리턴
// 아니라면 false 리턴하자
// Book 이라는 데이터 타입만 확인하자 !!! 방어적 코드 작성
if(obj instanceof Book) {
Book targetBook = (Book)obj;
if(this.title == targetBook.title) {
System.out.println("같은 책 제목 입니다.");
return true;
}
}
return false;
}
}
응용하기!!
class파일
package ch07;
public class Student {
// 학번과 이름을 정의 해주시고
private String number;
private String name;
public Student(String number, String name) {
this.number = number;
this.name = name;
}
// toString --> 학번과 이름이 화면에 출력할수 있도록 설계
@Override
public String toString() {
return "이름은 : " + "[" + this.name + "]" + " 학번은 : " + "[" + this.number + "]";
}
// equals 메서드를 제정의 해주세요
// 이름이 같다면 동명이인 입니다
@Override
public boolean equals(Object obj) {
if (obj instanceof Student) {
Student targetStudent = (Student) obj;
if (this.name == targetStudent.name) {
// System.out.println("동명이인 입니다");
return true;
}
}
return false;
}
}// end class
main 파일
package ch07;
public class MainTest3 {
public static void main(String[] args) {
Student student1 = new Student("21605034", "김민우");
Student student2 = new Student("21604534", "김민우");
Student student3 = new Student("21605054", "김미니");
System.out.println(student1);
System.out.println("------------------------------");
if (student1.equals(student2)) {
System.out.println("동명이인 입니다");
} else {
System.out.println("동명이인이 아닙니다");
}
boolean result1 = student1.equals(student3);
boolean result2 = student1.equals(student2);
System.out.println(result1);
System.out.println(result2);
}
}