본문 바로가기

프로그래밍/Java

Java_Object클래스

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