1. toString() 매서드
[ toString 메소드 ]
- 기본 상속된 Object 클래스의 메소드
- 객체가 가진 정보를 문자열로 만들어 출력
- 인스턴스 출력 시 Object.hashCode()로 생성된 해시값을 문자열로 반환시켜줌
인스턴스의 값을 출력할 때 그냥 인스턴스를 넣거나 기본 toString()메소드를 사용하면 해시값을 포함한 이상한 값이 출력됩니다. 만들어 둔 인스턴스의 정보를 편하게 출력하기 위해 toString()메소드를 오버라이딩 해두면 편리합니다.
먼저 기본 Object.toString()를 사용해서 인스턴스 하나를 출력해본 결과입니다. 그냥 인스턴스만 넣어도 동일하게 작동합니다.
package study.first;
public class Main {
public static void main(String[] args) {
Sub s1 = new Sub();
s1.a = "abc";
System.out.println(s1);
System.out.println(s1.toString());
}
}
/* Sub 클래스 */
class Sub {
int x;
int y;
String a;
이클립스에서 만들어주는 toString() 오버라이딩 메소드입니다. 보기 편한대로 바꿔서 써도 됩니다. 디버깅할때나 값을 출력해서 보고 싶을 때 매우 편하게 사용할 수 있습니다.
객체 값 출력_toString 메소드 오버라이딩
[ toString 메소드 ] 기본 상속된 Object 클래스의 메소드 객체가 가진 정보를 문자열로 만들어 출력 인스턴스 출력 시 Object.hashCode()로 생성된 해시값을 문자열로 반환시켜줌 인스턴스의 값을 출력
codevang.tistory.com
2. equals() 메서드
equals 메서드
@Override로 재정의 하지 않으면 그 클래스의 인스턴스는 오직 자기 자신과만 같게 된다.
Java equals()
Object 클래스에 정의된 equals()는 다음과 같다.
public boolean equals(Object obj) { return (this == obj); }
즉, 오직 자기 자신과만 같다고 인식한다.
언제 equlas를 재정의 해야 할까?
- 논리적 동치성을 확인해야 하는데 상위 클래스의 equals가 논리적 동치성을 비교하도록 재정의 되어있지 않을때
- 주로 값 클래스 : Integer, String처럼 값을 표현하는 클래스
- 두 값 객체를 equals로 비교한다는 것은 객체가 같은지가 아니라 값이 같은지 알고 싶은 것이다.
- equals가 논리적 동치성을 확인하도록 재정의 해두면, 그 인스턴스 값의 비교가 가능하고 Map의 key와 Set의 원소로 사용할 수 있다.
값 클래스 중 equals를 재정의하지 않아도 되는 경우
인스턴스가 둘 이상 만들어지지 않음을 보장하는 클래스
- ex) Enum
- 이런 클래스에서는 논리적으로 같은 인스턴스가 2개 이상 만들어지지 않는다.
- 따라서 논리적 동치성과 객체 식별성이 사실상 똑같은 의미가 된다.
- 이런 경우 Object의 equals가 논리적 동치성까지 확인해준다고 볼 수 있다.
[Java] equals() & hascode() 메서드는 언제 재정의해야 할까?
예를 들어, 아래와 같이 값이 Menu 클래스가 있다고 하자.두 개의 Menu객체(friedChicken, friedChicken2)는 name과 price가 서로 같은 객체 지닌다. 위 테스트 코드를 실행한 결과는 다음과 같다.테스트가 실
velog.io
올인원 패키지 : JAVA 웹 개발 마스터👉https://bit.ly/35aoeAW
'패스트캠퍼스 환급 챌린지' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] {자바 인강} 100% 환급 챌린지 {20} 회차 미션 (0) | 2020.11.22 |
---|---|
[패스트캠퍼스 수강 후기] {자바 인강} 100% 환급 챌린지 {19} 회차 미션 (0) | 2020.11.21 |
[패스트캠퍼스 수강 후기] {자바 인강} 100% 환급 챌린지 {17} 회차 미션 (0) | 2020.11.19 |
[패스트캠퍼스 수강 후기] {자바 인강} 100% 환급 챌린지 {16} 회차 미션 (0) | 2020.11.18 |
[패스트캠퍼스 수강 후기] {자바 인강} 100% 환급 챌린지 {15} 회차 미션 (0) | 2020.11.17 |