| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 스프링부트로그
- CachingOperationNameGenerator
- MVC
- Session
- scanner
- 국비학원
- 코딩
- 자바스크립트
- Spring
- 스프링
- Heap
- Java
- SpringBoot
- 타임리프
- Thymeleaf
- 객체 주소
- List에 객체 같은 값
- preparedstatement
- Servlet
- Statement
- JDBC
- JSP
- 오라클
- 서블릿
- 자바
- db
- Stack
- 스프링로그
- JavaScript
- 비전공
- Today
- Total
sin prisa pero sin pausa
[JAVA] Object.toString() 본문
1. Movie라는 클래스를 만들었다

2. Movie2에 Movie1의 인스턴스 movie와 movie2를 만들고 출력구문을 썼다. 근데...

3. 어째서인지 movie2는 toString 메소드를 써주지도 않았는데 toString 메소드 형식에 맞게 프린트 되었다
원래라면 movie2가 참조하고 있는 주소만 나와야 하는 거 아닌가?
여기서부터 고민하기 시작했다. 왜일까. 출력 형식은 Movie 생성자에 포함되어 있지도 않은데 왜 출력이 가능할까.

알아본 결과..

(이해하기 쉽게 파파고를 돌려왔다)=========================================================================
개체의 문자열 표현을 반환합니다. 일반적으로 toString 메서드는 이 개체를 "텍스트적으로" 나타내는 문자열을 반환합니다.
결과는 사람이 읽기 쉬운 간결하지만 유익한 표현이어야 한다. 모든 하위 클래스가 이 메서드를 재정의하는 것이 좋습니다.
classObject에 대한 ToString 메서드는 객체가 인스턴스인 클래스의 이름, at-sign 문자 '@' 및 객체의 해시 코드의 부호 없는 16진수 표현으로 구성된 문자열을 반환합니다. 즉, 이 메서드는 다음 값과 동일한 문자열을 반환합니다.
===================================================================================================
toString()은 Object 클래스 안에 존재하는 메소드였으며 인스턴스가 실행될 때 자동으로 동작한다.
이 toString()을 오버라이딩 없이 그냥 쓰게 되면 저 위에 가운데에 써져있는
원래 순수한 Object 클래스 안의 toString()의 값이 출력되어 버리기 때문에
우리는 우리가 원하는 출력 형식을 오버라이딩(1번 사진 참고) 해주면 된다.
'비전공 거북이 표류기' 카테고리의 다른 글
| [JAVA] return이 가능한 이유(feat. stack) (0) | 2021.04.06 |
|---|---|
| [JAVA] 생성자 (0) | 2021.04.06 |
| [JAVA] int input 값을 배열에 입력하고 출력하기(feat. 백준 10950) (0) | 2021.03.24 |
| [JAVA] for, while 반복문 (0) | 2021.03.23 |
| [JAVA] 문자열에서 한 글자 받아오기 (0) | 2021.03.22 |