[Java] 제어자(modifier)

Updated:

접근 제어자와 그외 제어자

접근제어자


01

public 외부 클래스 어디든 접근 가능
protected 상속 관계의 클래스혹은 같은 패키지에서만 접근 가능
default 기본 제한자, 자신 클래스 내부와 같은 패키지 내부에서만 접근 가능
private 같은 클래스 내부에서만 접근 가능

그 외 제어자


Static


  • static을 사용
    • ⇒ 메모리가 jvm의 static 메모리(해당 영역은 프로그램이 시작하고 종료될 때까지 살아있음)에 올라감
    • ⇒ 초기화 과정이 필요없어 static이 선언된 변수, 메서드에 곧장 접근
  • 해당 객체를 공유하겠다는 의미
  • 다른 곳에서 사용한다면, 그 객체가 모두 동일한 하나의 객체라는 것.
    • ⇒ 한 곳에서 객체가 변경된다면 다른 모든 곳에서 변경

Final


  • 재할당이 불가능하도록 만드는것
  • 상속 & 최초 초기화 이후 재할당이 불가능.
    • 값이 불변한 것은 아님
    • 보통 Collections타입(Map,List,Set)에 해당
    • 기본 타입(기본 데이터 타입인 int, boolean, char)의 경우 재할당이 안되므로 값을 변경될 일이 없다.

왜 상수를 쓸 때 주로 private static final을 쓰는가?

  • 메모리에 한번 올라가면 같은 값을 클래스 내부 전체 필드, 메서드에서 공유
  • 변하지 않는 값을 호출시마다 새롭게 인스턴스할 필요없이 메모리에 올려놓고 계속 사용가능

참조


  • https://luyin.tistory.com/232

Tags:

Categories:

Updated:

Leave a comment