# 숨겨진 필드 변경하기 - 세터(setter) setPassword 메소드 앞에는 왜 void인가요?? 메소드를 정의할 경우에 앞에 값은 어떠한 기준에 따라 정하는지 잘 이해가 안가네요.. #### CODE <a class='btn btn-default' href='/codes/41577'>Link</a> ``` public class LockTest { public static void main(String[] args) { // 객체 생성 Lock lock = new Lock("123!@#"); /* 1. 세터를 호출하여, 비밀번호를 변경하시오. */ lock.setPassword("654#@!"); // 객체 정보 출력 System.out.println(lock.toString()); } } class Lock { // 필드 private String password; // 생성자 public Lock(String p) { password = p; } // 메소드 public String toString() { return String.format("Lock { password: %s }", password); } /* 2. 비밀번호 변경을 위한, 세터 메소드를 추가하시오. */ public void setPassword(String pw) { password = pw; } } ``` #### INPUT ``` ``` #### OUPUT ``` Lock { password: 654#@! } ```
## void 의미 메서드에서 void는 리턴값이 없는것을 의미합니다. 즉 , 메서드를 호출한곳으로 값을 반환하지 않겠다는 의미 입니다. 그러나 메서드의 반환값이 있는경우 해당 데이터의 타입을 적어주면 됩니다. 메서드의 구조는 public 리턴타입 메서드명() { } 입니다. 이 문제에서는 , /* 1. 세터를 호출하여, 비밀번호를 변경하시오. */ lock.setPassword("654#@!"); /* 2. 비밀번호 변경을 위한, 세터 메소드를 추가하시오. */ public void setPassword(String pw) { password = pw; } setPassword 메서드의 파라미터로 "654#@!" 값을 넘깁니다. setPassword 메서드는 파라미터로 전달된 pw 값을 password 변수에 저장하는 역할을 합니다. 리턴 타입이 void 이기 때문에 값을 반환하지 않습니다.