[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()재정의 했을때 결과






- 출처

https://dreaming5developer.tistory.com/78

댓글

T O P