210111_JAVA

정재현·2021년 1월 11일
0

TIL

목록 보기
41/80

오늘은 어제에 이어서 챕터 09-2 접근 수준 지시자를 들어간다.

201~210페이지.

접근 수준 지시자에는 4개의 형태가 존재한다.
public, protected, private, default

하지만 클래스 정의, 인스턴스 변수와 메소드 대상으로 나뉘는데.

클래스 정의: public, default

인스턴스 변수와 메소드 대상: public, protected, private, default

간단하게 정리하면
클래스를 정의할 때 public, default 를 접근 수준 지시자로 사용할 수 있는데,

public은 어디서든 인스턴스 생성이 가능하고
default는 같은 패키지로 묶인 클래스에서만 인스턴스로 생성이 가능하다.

다음은 인스턴스 변수와 메소드 대상일 때.
마찬가지로 public은 어디서든 접근, 호출이 가능하다.
default도 동일 패키지로 묶인 클래스 내에서만 접근이 가능하다.
다른 패키지에 있는 클래스에서 생성하려 하면 호출조차 되질 않는다.

private은 어제 했던 것과 같이 같은 클래스에 정의된 메소드에만 호출이 가능.

protected는 default 선언이 허용하는 접근을 모두 허용한다.
다만 default 가 허용하지 않는 '한 영역'만 허용이 되는데 그건 바로 '상속'을 하는 클래스에서 허용을 한다. 물론 다른 패키지로 묶여있어도 가능하다.

나로써는 주로 public, private, default, protected 순으로 사용을 자주해서 protected는 낯설다.

하나의 표로 정리하면 이렇게 된다.

평소에 알고 있던 내용이여서 가볍게 읽혔다.
내일은 캡슐화를 진행한다.

오늘의 코멘트: 10시 밖에 안되었는데 졸려..

profile
"돈받고 일하면 프로다"

0개의 댓글