# 리뷰: 게터/세터와 this #### CODE <a class='btn btn-default' href='/codes/42647'>Link</a> ``` public class KnightTest { public static void main(String[] args) { // 객체 생성 Knight don = new Knight("돈키호테", 30); // 정보 출력 System.out.println("[객체 생성]"); System.out.printf(don.toString()); // 체력 증가: 기존 체력 + 30 don.setHp(don.getHp() + 30); // 결과 출력 System.out.println("[체력 증가 +30]"); System.out.printf(don.toString()); } } class Knight { // 필드 private String name; private int hp; // 생성자 Knight (String name, int hp) { this.name = name; this.hp = hp; } // 게터 String getName(){ return this.name; } int getHp(){ return this.hp; } // 세터 void setName(String name) { this.name = name; } void setHp(int hp) { this.hp = hp; } public String toString(){ return String.format("\tKnight { name: %s, hp: %d }\n", this.name, this.hp); } } ``` #### INPUT ``` ``` #### OUPUT ``` [객체 생성] Knight { name: 돈키호테, hp: 30 } [체력 증가 +30] Knight { name: 돈키호테, hp: 60 } ``` public String toString(){ return String.format("\tKnight { name: %s, hp: %d }\n", this.name, this.hp); } public String toString() <- 여기서 public을 빼고, 그냥 디폴트인 String toString()으로만 작성하면 에러가 나는 이유가 궁금합니다. this.name과 this.hp가 외부에서 접근할 수 없기 때문에 그런건가요?
## toString() 메소드는 조금 특별한 메소드입니다. 모든 객체들이 기본적으로 가지고 있는 메소드인데요. 따라서 반드시 public을 붙여줘야 합니다. 보다 자세한 내용은 "자바 Object toString 메소드" 정도로 구글링 해보세요.