[Java] toString사용이유 ~게시판 만들 때 VO의 toString 사용이유 /디버깅 가상메모리값 결과값 텍스트로 출력 시~(자바 투스트링 디버깅 시스아웃)_System.out.println debugging-Reasons for using tostring-++
+ toString사용이유 : 게시판 만들 때 VO의 toString 사용이유
+ 디버깅 할 때 System.out.println()를 이용하여 값을 찍어볼 때 가상메모리값이 출력된다면?
+ toString 사용이유
1. 게시판을 만들 때 VO를 만들고 VO에 toString을 정의해준다.
- VO란? 보통은 데이터를 CRUD할때 한번에 데이터들을 주고받기 용이하게 하기위하여 쓰이며,
DB 테이블의 각 컬럼들을 VO의 필드로 등록해놓는다.
-- VO는 봉투와 같이 담아서 주고 받는다는 개념으로 생각해보는게 이해하기 수월 할 것 이다.
-- xxxVO.Java 파일하나를 만들어서 VO클래스 하나로 각필드 값을 얻어오고 저장하는(봉투에 넣었다 뺏다 하는) 기능을 한다.
-- VO를 통해 디버깅할 때 값을 한번에 확인하기 때문에 디버깅이 용이 해진다
-- VO가 없다면 예를들어 insert 혹은 update를 할 때 데이터 입출력 시 필드 전부를 정의 해야하여 코드가 지저분해지고, 가독성이 떨어지며, 코드의 이해가 어려워져 운영자가 관리하기 힘들어진다.
- VO에서 toString을 만드는 이유
-- 디버깅 시 데이터를 주고 받을 때 VO를 통해 데이터를 주고 받을 때가 많다.
-- 디버깅 시 간단하게 콘솔에서 값을 확인하기 위해 System.out.println()을 많이 사용한다.
-- System.out.println() 로 VO를 찍어서 값을 확인하고자 할 때 toString이 없다면,
아래 사진처럼 가상메모리 값이 출력된다.
+ 디버깅 할 때 System.out.println()를 이용하여 값을 찍어볼 때 가상메모리값이 출력된다면?
1. 예제- java.lang 패키지
- 프로그래밍 시 import 하지 않아도 자동으로 import 됨
- import.java.lang.*;
- 많이 사용하는 기본 클래스들이 속한 패키지
- String, integer, System.....
- 모든 클래스는 Object 클래스를 상속 받는다.
- java.lang.Object 클래스
- 모든 클래스는 Object에서 상속받고, Object 클래스의 메서드 중 일부는 재정의해서 사용할 수 있음
- 컴파일러가 extends Object를 추가함 class Student => class Student extends Object
- toString() 메서드
- 객체의 정보를 String으로 바꾸어서 사용할 때 쓰임
package ch36;
class Book {
private String title;
private String author;
public Book(String title, String author) {
this.title = title;
this.author = author;
}
// @Override
// public String toString() {
// // TODO Auto-generated method stub
// return title + "," + author;
// }
}
public class BookTest {
public static void main(String[] args) {
Book book = new Book("데미안", "헤프만 헤세");
System.out.println(book); // 클래스의 풀네임, 메모리 위치(가상메모리값) @로 구분
System.out.println(book.toString());
String str = new String("test");
System.out.println(str); //자동으로 toString()이 오버라이딩됨
System.out.println(str.toString());
}
- toString()재정의 안했을때 결과
- toString()재정의 했을때 결과
- 출처
댓글
댓글 쓰기