toString()
객체의 문자정보를 리턴하는 메서드입니다.
객체의 문자 정보란 객체를 문자열로 표현한 값을 말합니다.
Object클래스의 toString()는 패키 지명. 클래스명@해시 코드로 구성된 문자 정보를 리턴합니다
toString()는 자동 호출될 때가 있는데 System.out.println() 안에 매개변수로 객체를 넣었을 때
자동적으로 객체의 toString()을 호출합니다.
이걸 이용해 객체의 Class에서 toString()을 오버라이드 해서 의미 있는 값이 출력되도록 변경할 수 있습니다.
Program의 클래스에서 toString()를 재정의해서 의미있는 값을 출력해 보겠습니다.
package blog;
import java.util.Date;
public class Program {
private String x;
private String y;
public Program(String x, String y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return x + y;
}
public static void main(String[] args) {
Program pro = new Program("엑스","와이");
Date date = new Date();
System.out.println(pro);
//객체이므로 자동적으로 toString()이 호출된다.
}
}
객체를 콘솔 창에 출력해 필드의 값을 확인하고 싶을 때가 있습니다. 어떠한 경우일까요?
예를 들면 DB에서 넘겨준 칼럼들의 값을 간단히 확인하고 싶을때가 있습니다.
public Member getMemberById(String id) throws SQLException {
Member member = null;
String url = "jdbc:oracle:thin:@192.168.19:1521/xepdb1";
String sql = "SELECT * FROM MEMBER WHERE ID=?";
Connection con = DriverManager.getConnection(url, "ID", "PASSWORD");
PreparedStatement st = con.prepareStatement(sql);
st.setString(1, id);
ResultSet rs = st.executeQuery();
if (rs.next()) {
member = new Member();
member.setId(rs.getString("ID"));
member.setPwd(rs.getString("PWD"));
member.setName(rs.getString("NAME"));
member.setGender(rs.getString("GENDER"));
member.setBirthday(rs.getString("BIRTHDAY"));
member.setEmail(rs.getString("EMAIL"));
member.setPhone(rs.getString("PHONE"));
member.setRegdate(rs.getDate("REGDATE"));
}
rs.close();
st.close();
con.close();
return member;
}
Java에서 데이터베이스에 접근해 정보를 가져오는 JDBC API를 이용해 결괏값을 받습니다.
그런 뒤 Member라는 class에 전부 저장을 합니다.
그런뒤 리턴 값으로 Member객체를 반환합니다.
public class Member {
private String id;
private String pwd;
private String name;
private String gender;
private String birthday;
private String phone;
private String email;
private Date regdate;
public Member() {
}
@Override
public String toString() {
return "Member [id=" + id + ", pwd=" + pwd + ", name=" + name + ", gender=" + gender + ", birthday=" + birthday
+ ", phone=" + phone + ", email=" + email + ", regdate=" + regdate + "]";
}
이것은 Member Class의 필드와 오버라이드 된 to String입니다
이제 객체만 호출하면 JDBC를 이용해 얻은 데이터를 한눈에 볼 수 있습니다.
MemberService service = new MemberService();
Member member = service.getMemberById(id);
System.out.println(member);
다음 멤버 인스턴스에게 주소 값을 전달해준 뒤 toSting()가 자동 호출되는 println(member)를 id를 통해 얻어온 데이터를
콘솔 창에서 행단 위로 한눈에 볼 수 있습니다.
이렇게 toString()은 재정의하지 않고 사용하면 쓸데가 없는 것처럼 보이지만 사용자가 정의함에 따라 유용하게 사용할 수 있습니다.
'JAVA > [JAVA] 바구니' 카테고리의 다른 글
[JAVA] Objects Class (2) (0) | 2020.04.15 |
---|---|
[JAVA] Objects Class (1) (0) | 2020.04.15 |
[Java] Object Class (2) (0) | 2020.04.08 |
[JAVA] Object Class (0) | 2020.04.08 |
[JAVA] Java.lang 패키지 (0) | 2020.04.08 |
댓글