접근제한자의 종류에는 4가지가 있다.
- public → 어디서든 누구나 접근 가능
- protected → 같은 패키지(폴더) + 상속관계에서만 가능
- default → 같은 패키지에서만 가능
- private → 자기 자신만 가능
public class AccessModifier {
int num1 = 10;
int num2 = 20;
}
객체 변수인 num1, num2가 있을 때 함수안에서 객체 변수인 num1과 num2에 다른 값을 대입하는 것은 부담스러운 작업이다. 객체 변수는 웬만하면 직접적으로 바꾸지 않아야 한다.
그래서 객체 변수를 생성할 때 외부에서 접근할 수 없도록 private이라는 접근제한자를 붙여주면 좋다.
그렇다면 변수에 다른 값을 대입해야하만 한다면 어떤 방법을 사용할 수 있을까?
class Calculator { private int num1 = 10; private int num2 = 20;
그런 상황을 위한 외부에서 객체 변수에 접근할 수 있는 메서드가 있다.
우리는 getter, setter라는 메서드를 사용해 객체 변수에 접근한다.
setter는 변수에 값을 세팅해 주는 메서드, getter는 변수의 값을 가져오는 메서드이다.
public void setNum1() {this.num1 = num1;} public int getNum1() {return this.num1;} public void setNum2() {this.num2 = num2;} public int getNum2() {return this.num2;}
이런 식으로 getter, setter를 사용할 수 있다.