Getter와 Setter가 무엇일까?
클래스를 선언할 때 외부에서 변경할 수 없도록 만들 필요가 있는 경우에는
필드에 private으로 접근 제한을 한다
접근 제한을 할 필요가 있는 경우는 주로 고정된 값이 설정되어 있고 외부에서 변경하면 안될 경우다
일반적으로 private 접근 제한자가 붙으면 외부에서 값을 읽거나 수정할 수 없다
그렇다면 private으로 선언된 필드에 어떻게 접근할 수 있을까?
바로 Getter와 Setter로 접근하는데
Getter로 private 필드의 값을 읽고 Setter로 필드값을 수정한다
즉, getter로 필드 값을 읽고 setter로 외부에서 값을 지정해 수정할 수 있다는 것이다.
getter를 사용하기 위해서는 일정한 규칙이 있다
get+필드네임, is+필드네임으로 사용할 수 있다
getFieldInfo ();
isFieldInfo ();
위의 코드로 살펴보면 get과 is 뒤에 필드 네임이 오고 첫번째 글자는 대문자로 시작하는 것을 볼 수 있다
그렇다면 get과 is의 차이는 무엇일까?
필드타입이 boolean일 경우에는 is+필드네임()으로 사용한다
class FieldPractice {
private boolean check;
//private으로 선언한다
public boolean isCheck() {
return check;
}
}
public class Student {
private int age;
private boolean test;
//getter만들기
public int getAge() {
return age;
}
public boolean isTest() {
return test;
}
}
외부 값에 대해 유효성 검사를 통해 적절한 값으로 필드값을 수정한다
setFieldInfo (type variable);
class FieldPractice {
private int age;
private boolean test;
public void setAge(int age) {
this.age = age;
}
public void setTest(boolean test) {
this.test = test;
}
}