API에 대해서 알아보겠습니다.
API를 사용하면 다양한 것들을 쉽게 사용할 수 있겠죠~!
우선 최상위 클래스인 Object클래스!! 이 object 클래스의 메소드를 알아보겠습니다.
1. toString()
- 기본 동작: 객체의 해시코드 출력합니다.
- override 목적: 객체의 정보를 문자열 형태로 표현하고자 할 때
package test;
public class Book {
private String title;
private String author;
public Book(String title, String author) {
this.title = title;
this.author = author;
}
void show() {
System.out.println("title:" + title + ", ahtuor:" + author)
}
public class Test{
public static void main(String[] args) {
Book book = new Book("숨결이 바람 될때", "폴 칼라티니");
System.out.println(book); // test.Book@16f56512
book.show(); // title: 숨결이 바람 될때, author: 폴 칼라티니
}
}
이렇게 toString()을 override하지 않고 인스턴스를 출력하면 '클래스풀네임@해시코드'가 출력됩니다.
getClass().getName() + '@' + Integer.toHexString(hashCode())
toString()은 어떤 객체의 정보를 문자열 형태로 표현해야 할 때 호출하는 메소드입니다.
Book 예제에서 toString()을 override해서 결과를 확인하면!
package test;
public class Book {
private String title;
private String author;
public Book(String title, String author) {
this.title = title;
this.author = author;
}
@Override
public String toString() {
return "Book{" +
"title='" + title + '\'' +
", author='" + author + '\'' +
'}';
}
}
public class Test {
public static void main(String[] args) {
Book book = new Book("숨결이 바람 될때", "폴 칼라티니");
System.out.println(book);
}
} //Book{"title" : "숨결이 바람 될때", "author" : "폴 칼라티니"}
2. equals()
- 기본 동작: '==' 연산 결과 반환합니다.
- override 목적: 물리적으로 다른 메모리에 위치하는 객체여도 논리적으로 동일함을 구현하기 위해
- 리스트에서 ==를 비교하면 참조값 끼리 비교되서 값을 비교할 때 사용
equals()를 사용해 두 객체의 동일함을 논리적으로 override 할 수 있습니다.
public class User {
int id;
String name;
public User(int id, String name) {
this.id = id;
this.name = name;
}
public static void main(String[] args) {
User user1 = new User(1001, "홍길동");
User user2 = new User(1001, "홍길동");
System.out.println(user1.equals(user2)); // false
}
}
equals()의 기본 동작은 '==' 연산이기 때문에 서로 다른 인스턴스를 가리키는 참조변수를 equals()로 비교하면 false가 리턴됩니다.
이런 경우 equals()를 override하여 논리적인 동일성을 갖도록 할 수 있습니다.
다음은 위 예제에서 User 클래스에서 equals()를 override 한 것입니다.
public static void main(String[] args) {
User user1 = new User(1001, "홍길동");
User user2 = new User(1001, "홍길동");
System.out.println(user1.equals(user2)); //true
}
참고서적 : 이것이 자바다.
참고서적 : 이젠 나도! 자바
'기술 스텍 > Java' 카테고리의 다른 글
서블릿(survlet) (0) | 2023.06.23 |
---|---|
java기초(7) 제네릭스 (0) | 2023.01.24 |
java 기초(5) (0) | 2023.01.23 |
java 기초(4) (0) | 2023.01.23 |
java 기초(3) (0) | 2023.01.22 |