설정(setter) 메소드
설정 메소드(setter method)
설정 메소드는 세터 메소드(setter method)라고 하며, 메소드 중에서 멤버 필드의 값 설정을 전담하는 메소드를 말한다. 일반적으로 멤버 필드 하나당 한 개의 설정 메소드가 필요하다.
형태
String name에 대한 setter method는 다음과 같다.
String name;
void setName(String name){
this.name = name;
}int score에 대한 setter method는 다음과 같다.
int score;
void setScore(int score){
this.score = score;
}데모 1 : 설정 메소드가 존재하는 클래스
class Student {
String name;
int score;
void setName(String name){
this.name = name;
}
void setScore(int score){
if(score < 0 || score > 100) {
return;
}
this.score = score;
}
void print(){
System.out.println("이름 : "+this.name);
System.out.println("점수 : "+this.score+"점");
}
}
public class MemberMethodExample01 {
public static void main(String[] args){
Student stu1 = new Student();
stu1.name = "홍길동";
stu1.score = 50;
stu1.print();
stu1.score = -50;//차단할 수 없음
stu1.print();
Student stu2 = new Student();
stu2.setName("김선달");
stu2.setScore(80);
stu2.print();
stu2.setScore(-80);//차단
stu2.print();
}
}
점수 설정 메소드는 다음과 같다.
void setScore(int score){
if(score < 0 || score > 100) {
return;
}
this.score = score;
}점수가 0점 미만이거나 100점을 초과하는 경우에는 return이라는 키워드를 만나게 되는데, return은 다음 두 가지의 의미를 가진다.
남은 코드 여부와 관계없이 메소드의 실행을 중지한다.
특정 값을 반환한다.
하지만 void 라는 키워드는 반환이 없음을 나타내는 키워드이기 때문에 return만 사용하여 종료 효과만 발생시켜 차단되도록 구현하였다.
특징
장점
조건 설정을 통한 값의 필터링이 가능하다.
단점
변수 하나 당 한 개의 세터메소드를 생성해야 하기 때문에 전체 코드가 길어진다.
결론
설정 메소드는 접근 제한과 같이 사용하면 좀 더 멤버 필드를 효율적으로 관리할 수 있다. 해당 클래스의 인스턴스를 이용하여 작업을 할 때 값 설정에 관련된 강제성을 부여할 수 있으므로 매우 유용하며 적극적으로 사용해야 한다.
최근 lombok 등 자동와 도구들에 의해 사용이 매우 간편해지는 추세이다.
Last updated