
어제 과제를 하면서 Getter와 Setter는 왜 쓰였을까?
Getter와 Setter는 클래스에 직접적으로 접근이 불가능할 때 간접적으로 접근을 허용시켜주는 것이다.
접근제어자에서 private로 선언하면 같은 클래스에서만 직접 접근을 할 수 있다. 다른 클래스에서 접근하려면 해당 클래스 안의 메서드를 통해서만 가능하다. 그 역할이 Getter와 Setter이다.
Getter는 private를 외부로 꺼내는 메서드이다.
Setter는 private에 값을 넣는 메서드이다.
접근 제어자에는 public, private, protected, default 이렇게 4가지가 존재한다.
같은 패키지 내에 모든 클래스 O, 다른 패키지 O
같은 패키지 내에 모든 클래스 O, 다른 패키지 상속관계 O
같은 패키지 내에 모든 클래스 O, 다른 패키지 X
접근제어자를 따로 안적으면 기본으로 default가 된다.
같은 클래스에서만 접근 가능.
다른 외부클래스에서 접근하려면 다른 메서드를 거쳐서 접근해야한다.
객체지향 특징 중 E(Encapsulation, 캡슐화 = 은닉성)에 해당함.
외부에서의 직접적인 접근을 허용하지 않는 멤버를 설정하여 정보 은닉 구체화
이것을 이해할 때 protected는 부모 클래스에 있는 것을 자식 클래스에서도 사용하게 할 때 쓰이는 것이라 부모는 자식을 보호(protect)한다. 이런식으로 좀 쉽게 외웠다.