Skip to Content
Suffering builds character
아카이브10.Java특징캡슐화5. setter( ), 객체의 필드 값 초기화, 변경

5. setter( ), 객체의 필드 값 초기화, 변경

1. set, setter

💡
Tip

Set - 시스템 세팅(setting), 무언가(ex. 값)를 설정하다
setter - 무언가를 설정해주는 사람, 역할

2. setter 메서드

setter 메서드란, 필드 값을 초기화하거나 변경하는 방법을 가리키는 메서드를 일반적으로 부르는 명칭을 의미

혼동할 수 있는 점은 메서드의 이름을 그렇게 표현한다는 것이지,
생성자와 같이 인스턴스를 생성할 때 사용하는 것과 같이 특별한 규칙이 있는 메서드는 아니고 일반 메서드로 볼 수 있음

Note

setter는 메서드의 이름 작성 규칙만 일관화시킨 일반 메서드
개발자들 사이에서 관습적으로 사용되는 네이밍 규칙이 지켜진 메서드

3. 사용 예시

setter()를 사용하여 적용하면 문제 1에 대한 부분을 해결할 수 있음

문제 1. `changeAge()`는 [[7. 특성의 중복 - 두 번째]] 에서 본 `printMouse()` vs `toString()`과 같이 메서드의 이름에 개발자의 주관이 들어가있음
💡
Tip

편집기(IDE)에서는 toString()과 같이 해당 방식으로 자동완성 기능을 제공

Eclipse - Setter 자동 완성 단축키
Alt + Shift + S → Generate Getter and Setter~ 버튼 선택

Mouse.java
public class Mouse { private int age; private String name; Mouse(int age, String name) { this.age = age; this.name = name; } // public void 나이먹자(int age) { // this.age = age; // } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } }

나이먹자()와 동작은 동일하고, 메서드의 이름만 다른 메서드

따라서 모든 메서드는 아래의 형태로 자동완성됨

“set + 필드의 이름” // 필드의 앞 글자는 camelCase규칙을 지켜서 대문자로 시작
→ “setXxx()” 형태

setter 작성 규칙
int age 필드의 경우, setAge(); String name 필드의 경우 setName();
Main.java
public class Main { public static void main(String[] args) { Mouse jerry = new Mouse(5); jerry.setAge(10); } }

→ 일관된 형태로 작성이 가능해짐

Last updated on