스코프 - 변수 함수 클래스 공유하여 사용할 범위 지정
범위 - 패키지, 클래스, 함수 로 구분
스코프 외부에서는 스코프내부 멤버를 참조연산자로만 참조가능함(a.eat(), import)
동일 스코프내에서는 멤버공유가능
스코프의 같은 레벨에서는 같은 이름의 변수를 만들면 안된다. but 하위 스코프에서는 같은 이름의 변수를 만들어 쓸 수 있다
패키지 명시안하면 디폹트 패키로 됨. 그러면 패키지 표시안한애들은 다 같은 패키지에 속해있음
public 어떤 패키지에서도 접근가능
internal 같은 모듈내에서만
private 같은 파일내에서만
protected 사용 x
public 클래스 외부에서 가능
internal 사용 x
private 클래스 내부에서만
protected 자신과 상속받은 애들만 사용가능 (나랑 나를 상속받은 애들만 사용가능하게하기)
(private이 많을수록 좋음, 버그잡을때도 private으로 되어있으면 그부분만 보면 되니까)