제한자 Modifier

Ajisai·2023년 7월 19일
0

Java

목록 보기
7/17

접근 제한자

  • public
    • 같은 패키지
    • 다른 패키지
    • 대충 아무데서나 접근 가능하다는 뜻
  • protected
    • 같은 패키지
    • 다른 패키지라면 subclass에서만 접근 가능
    • 클래스에는 사용할 수 없다.
  • default
    • 같은 패키지
    • 다른 패키지에서는 subclass라도 접근할 수 없다.
  • private
    • 같은 클래스
    • 따라서 클래스에 private이 붙는 건 어불성설
    • Singleton pattern에서 유용함

그 외

  • static
  • abstract
  • synchronized
  • final

기타

  • 제한자의 순서는 무관하지만 보통 접근 제한자를 가장 먼저 쓴다.
  • 접근 제한자는 한 개만 쓸 수 있고 나머지는 여러 개를 함께 쓸 수 있다.

final class, final method

  • final class: 클래스 전체를 상속할 수 없음
  • Ex) String, Math
  • final method: 그 method를 재정의(override)할 수 없음
  • 상속도 클래스에 대한 override로 볼 수 있다.
  • 이미 완벽해서 재정의할 필요 없는 것들에 쓰인다.
    • Math.cos() 재정의 할 자신 있음?
      할 수 있다고 해도 이미 정확히 정의된 함수이므로 굳이 건드릴 이유가 없다.

왜 함

  • 보안 이슈
  • 이미 완벽한 것들은 괜히 건드렸다가 오류 나니까 그냥 쓰라는 의미
  • Math.cos 재정의할 자신 있음?(2)

static

  • 굳이 Heap에 객체 만들 필요 없고 그냥 써도 되는 것들
  • 통상 util method가 여기에 해당한다.
profile
Java를 하고 싶었지만 JavaScript를 하게 된 사람

0개의 댓글

관련 채용 정보