항해99 2주차 TIL

김근호·2023년 1월 25일
1

Java객체지향

목록 보기
3/5

제어자

  • 클래스와 클래스의 멤버(변수, 메서드) 에 부가적인 의미를 부여
    접근 제어자 : public, protected, (default), private
    그 외 : static, final, abstract ...
  • 하나의 대상에 여러 제어자를 같이 사용 가능합니다.(접근 제어자는 하나만)
  • 순서는 상관없지만 주로 접근 제어자를 제일 왼쪽에 선언합니다.

static

  • 멤버변수, 메서드, 초기화 블럭에 static 이 사용될 수 있다

final

  • 클래스, 메서드, 멤버변수, 지역변수에 final 이 사용될 수 있다

abstract

  • 클래스, 메서드에 abstract 이 사용될 수 있다

접근 제어자

  • private : 같은 클래스 내에서만 접근이 가능하다

  • (default) : 같은 패키지 내에서만 접근이 가능하다 (생략가능)

  • protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근이 가능하다

  • public : 접근 제한이 전혀 없다

  • 메서드에 static과 abstract를 함께 사용할 수 없다
    static 메서드는 몸통이 있는 메서드에만 사용할 수 있기 때문이다

  • 클래스에 abstract와 final을 동시에 사용할 수 없다
    클래스에 사용 되는 final은 클래스를 확장할 수 없다는 의미이고, abstract는 상속을 통해서 완성되어야 한다는 의미이므로 서로 모순되기 때문이다

  • abstract메서드의 접근 제어자가 private일 수 없다
    abstract메서드는 자손 클래스에서 구현하기 위해 접근해야 하기 때문이다

  • 메서드에 private와 final을 같이 사용할 필요는 없다
    접근 제어자가 private인 메서드는 오버라이딩될 수 없기 때문이다
    이 둘 중 하나만 사용해도 의미가 충분하다

profile
앞만 보고 나아가자!

0개의 댓글