- [Java] 52. Object 클래스2024년 04월 25일
- Song hyun
- 작성자
- 2024.04.25.:12
728x90반응형[Java] 52. Object 클래스
1. Object 클래스가 뭘까?
2. Object 클래스의 메서드 활용
1. Object 클래스가 뭘까?
(1) Object의 정의: Object 클래스는 모든 클래스의 최상위 클래스이다. 모든 클래스는 Object 클래스에서 상속받고, Object 클래스의 메서드 중 일부는 재정의해서 사용할 수 있다. Object 클래스는 단일 상속 규칙에서 유일한 예외이다.
(2) Object의 특징:
- Object 클래스는 java.lang 패키지 내부에 존재한다.
-import java.lang*; 프로그래밍시 import 하지 않아도 자동으로 가지고 온다.
- 많이 사용하는 기본 클래스들이 속한 패키지이며 String, Integer, System… 등이 존재한다.
2. Object 클래스의 메서드 활용
*Object 클래스의 메서드 중, 일부는 재정의해서 사용할 수 있다. 재정의할 수 없는 메서드는 final로 정의된 것이다.
**클래스에 final을 붙이면 상속이 불가능해진다.
(1) toString 메서드 : 객체의 정보를 String으로 바꿔 쓸 때 사용된다.
-String/Integer 클래스는 이미 재정의 되어 있다.
(2) equals 메서드 : 두 인스턴스의 주소값을 비교하여, true/false를 반환한다.
-필요하다면 재정의하여 두 인스턴스가 논리적으로 동일함의 여부를 구현한다.
->즉, 인스턴스가 다르더라도 논리적으로 동일한 경우, True를 반환하도록 재정의할 수 있다.
package useful; public class EBook { private int bookTypeId; private String title; private String author; public EBook(int bookTypeId, String title, String author) { super(); this.bookTypeId = bookTypeId; this.title = title; this.author = author; } // Object 클래스에 있는 메서드를 재정의 @Override public String toString() { return bookTypeId+" , "+title+" , "+author; } // Object 클래스에 있는 메서드를 재정의 @Override public boolean equals(Object obj) { if(obj instanceof EBook) { System.out.println("EBook이 맞음"); return true; } else { return true; } } public static void main(String[] args) { EBook book1=new EBook(1,"홍길동전","허균"); EBook book2=new EBook(1,"홍길동전","허균"); if(book1.equals(book2)) { System.out.println("같은 주소를 가리킨다."); } else { System.out.println("아냐, 다른 주소야"); } System.out.println(book1); System.out.println(book2); } }
package useful; public class EBook { private int bookTypeId; private String title; private String author; public EBook(int bookTypeId, String title, String author) { this.bookTypeId = bookTypeId; this.title = title; this.author = author; } // Object 클래스에 있는 메서드를 재정의 @Override public String toString() { return bookTypeId + ", " + title + ", " + author; } // Object 클래스에 있는 메서드를 재정의 @Override public boolean equals(Object obj) { // 1. EBook 클래스의 인스턴스가 맞다면 if(obj instanceof EBook) { EBook tBook = (EBook)obj; // 2. EBook 의 제목과 저자의 이름이 같다면 true 반환 시켜라 if(this.title.equals(tBook.title)) { return true; } else { return false; } } return false; } public static void main(String[] args) { EBook book1 = new EBook(1, "홍길동전", "허균"); EBook book2 = new EBook(1, "홍길동전", "허균"); System.out.println("------------------------------------------------"); boolean result1 = book1 == book2; System.out.println("result1 : " + result1); boolean result2 = book1.equals(book2); System.out.println("result2 : " + result2); } }
728x90반응형'Java > 기본 개념 및 클래스' 카테고리의 다른 글
[Java] 54. 인터페이스와 추상 클래스의 활용 (0) 2024.04.26 [Java] 53. String, StringBuffer 클래스 (0) 2024.04.26 [Java] 48. 인터페이스와 추상화 (0) 2024.04.25 [Java] 47. 추상 클래스 활용: 클래스 구현하기 (0) 2024.04.24 [Java] 46. 추상 클래스 (0) 2024.04.24 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)