class, field, constructor, method 를 선언할 때 앞에 붙어서 해당 개념들을 제어한다.
클래스 인스턴스 생성 시 메모리에 상시로 띄워, 공유되는 개념이나 행위를 호출하도록 도와주는 키워드
마지막.
값을 수정, 가공 등이 불가하다.
클래스 앞에 붙으면 마지막 클래스니, 상속하지 말고 직접 접근하여 사용하라는 의도를 가진다.
ex) final class 하위에 method 를 static 으로 만들어서 method overriding 이 불가능 하며, 정해진 것만 호출해서 사용하게 한다.
추상적.
선언만 하고 구체화 하지 않은 것.
// 이걸 왜 쓸까 생각해봤다. 많이 사용해보진 않았지만, method 를 공유의 목적으로 사용하는 것 같다.
class, field, constructor, method 를 외부로 부터 접근을 제어하는 것을 말한다.
어디서든 접근 가능
같은 패키지와 자식 클래스에서 접근 가능
같은 패키지 내에서만 접근 가능
같은 클래스 내에서만 접근 가능