꾸물꾸물 졔의 개발공부
01/20(3) - 접근제한자 본문
접근제한자 : public , protected, package(default) , private
- public : 공개 , 어디에서나 접근이 가능하다
- protected : 같은 패키지와 , 상속관계에 있는 것들에서만 접근이 가능
- package (default) : 같은 패키지에서만 접근이 가능
- private : 현재 객체에서만 접근이 가능
+ static / final
static : 메모리에 올라가있어라 !!! 클래스와 함께 사용되기 때문에, 객체가 생성되기 이전에도 접근이 가능
final : (= 마지막) 더 이상 값이 바뀔 수 없음,
1) final class : 더 이상 바뀔 수 없음, 즉 상속 불가능 ! --> 상속하면 오버라이딩 가능하므로
2) final method : 오버라이드 하지 마세요 , 재정의 금지
3) final variable: 상수화
근데 왜 ? 데이터를 은닉하고 보호하기 위해서 !!
if, public 하게 접근제한자를 지정하면 어느곳에서나 접근이 가능하기 때문에 , 보호는 힘듦
보호가 필요한 정보이면 private 으로 숨기고, getter 나 setter 함수를 통해 접근이 가능하게 할 수 있다.
setter 나 getter 는 public 하게 ~~
if ) setter 만 있다면, 쓰기전용, getter 만 있다면 읽기전용
+ 오버라이딩의 조건 중 하나가, 메서드를 오버라이딩 할때는, 부모의 제한자보다 범위가 넓거나 같아야한다 .
ex) protected 부모클래스 ---@override---> private 자식클래스 (x) protected의 범위 > private
public > protected > package > private