자바의 세터/게터 메서드는 무엇인가요?
자바에서 세터(setter)와 게터(getter) 메서드는 객체 지향 프로그래밍에서 클래스의 필드(멤버 변수) 에 접근하고 값을 변경하거나 조회할 때 사용하는 메서드입니다.
1. 세터 메서드(setter)란? - 필드의 값을 외부에서 안전하게 변경할 수 있도록 도와주는 메서드입니다.
- 보통 이름은 `set` + 필드명(첫 글자 대문자) 형태로 만듭니다.
- 매개변수로 전달받은 값을 내부 필드에 할당하는 역할을 합니다.
- 필드를 직접 `public`으로 공개하지 않고, 세터를 통해 값의 유효성 검사나 부가 처리를 수행할 수도 있습니다.
2. 게터 메서드(getter)란? - 필드 값을 외부에서 조회할 수 있도록 값을 반환하는 메서드입니다.
- 보통 이름은 `get` + 필드명(첫 글자 대문자) 형식을 따릅니다.
- boolean 타입인 경우에는 `is` + 필드명 형식을 사용하기도 합니다.
- 필드가 `private`일 때 외부에서 필드 값을 안전하게 읽는 수단이 됩니다.
3. 세터/게터 메서드의 목적 - 캡슐화(encapsulation) : 필드를 직접 공개하지 않고 은폐시켜, 외부에서 임의로 변경이나 접근하는 것을 제어합니다.
- 유효성 검사 : 세터에서 입력 값을 체크해 오류를 방지할 수 있습니다.
- 유지보수성 향상 : 내부 구현은 숨기고, 인터페이스(메서드)로만 데이터를 주고받으므로 향후 수정 시 영향 범위를 최소화할 수 있습니다.
4. 예시 코드 ```java public class Person { private String name; private int age; // 게터 public String getName() { return name; } // 세터 public void setName(String name) { this.name = name; } // 게터 public int getAge() { return age; } // 세터, 나이값 유효성 검사 추가 public void setAge(int age) { if (age >= 0) { this.age = age; } else { System.out.println("나이는 0 이상이어야 합니다.
"); } } } ``` --- 5. 사용 예 ```java Person p = new Person(); p.setName("홍길동"); p.setAge(25); System.out.println(p.getName()); // 홍길동 System.out.println(p.getAge()); // 25 ``` --- 요약 - 세터 는 필드 값을 설정하는 메서드 - 게터 는 필드 값을 반환하는 메서드 - 자바에서 접근 제어자 `private` 필드를 외부에서 간접적으로 접근하기 위한 표준적인 방식이며, 캡슐화 원칙을 지키는 데 매우 중요한 역할을 합니다.