Object클래스
: 모든 클래스에 최상위 클래스
기본으로 가지는 메서드들이 있다.
toString()과 equals()메서드는 재정의하여 사용할 수 있다.
- toString()
: toString() 메서드는 Object 클래스에 속해있는 메서드이다.
public String toString() {
return //코드
}
→ return 뒤에 출력하고 싶은 코드를 적어 각 필드 값들의 정보를 문자열로 출력할 수 있다.
- equals()
: equals() 메서드는 비교대상의 주소값이 아닌 데이터 값을 비교한다.
※ '==연산자'는 객체 주소를 비교할 때 사용한다.
public boolean equals(Object obj) {
//코드
return false;
}
→ equals()는 반환타입이 boolean이므로 false나 true를 반환할 수 있다.
- toString(), equals() 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | package ch07; public class Student { // 학번과 이름을 정의 // 생성자 private int id; private String name; public Student(int classNum, String name) { this.id = classNum; this.name = name; } // 1 // toString --> 학번, 이름이 화면에 출력할 수 있도록 설계 public String toString() { return "학번 : " + id + ", 이름 : " + name; } // 2 // equals 메서드를 재정의 해주세요. // 이름이 같다면 동명이인입니다 라고 출력해주세요. @Override public boolean equals(Object obj) { if (obj instanceof Student) { // 다운 캐스팅 Student targetName = (Student) obj; if (this.name == targetName.name) { System.out.println("동명이인입니다."); return true; } } return false; } public static void main(String[] args) { Student st1 = new Student(1, "짱구"); Student st2 = new Student(2, "찡구"); Student st3 = new Student(3, "짱구"); System.out.println(st1); System.out.println(st2); System.out.println(st3); st1.equals(st3); Boolean result1 = st1.equals(st3); System.out.println(result1); } // end of main } // end of class 결과 화면 학번 : 1, 이름 : 짱구 학번 : 2, 이름 : 찡구 학번 : 3, 이름 : 짱구 동명이인입니다. 동명이인입니다. true | cs |
→ 생성자의 매개변수를 받아서 toString() 메서드를 통해 화면에 학번과 이름을 출력하였다.
→ equals 메서드에선 instance연산자를 사용하여 형변환 가능 여부를 보고 this.name == targetName.name이 참일 경우 "동명이인입니다."를 출력하게 하였다.
→ main함수에서 st1.equals(st3); 을 출력하면 위와 같이 "동명이인입니다." 가 출력된다.
'프로그래밍 > Java' 카테고리의 다른 글
Java_예외처리 (0) | 2023.02.16 |
---|---|
Java_추상 클래스(abstract class) (0) | 2023.02.14 |
Java_인터페이스 (0) | 2023.02.14 |
Java_상속과 다형성 (0) | 2023.02.14 |
Java_배열, 객체 배열 (0) | 2023.02.12 |