본문 바로가기

언어/JAVA

9장 패키지 / 접근제어자

패키지

자바에서 패키지란 클래스들을 구분짓는 폴더같은 개념이다.

해당 패키지의 가장 상위 디렉터리, 즉 root 디렉터리에서 실행을 해야한다는 약속이 있다.

 

제약사항

  • 소스의 가장 첫 줄에 있어야 한다.
  • 패키지 선언은 소스 하나에 하나만 있어야 한다.
  • 패키지 이름과 위치한 폴더 이름이 같아야 한다.

패키지 기본 규칙

패키지 시작 이름 내용
java 자바 기본 패키지 ( JAVA 벤더에서 개발 )
javax 자바 확장 패키지 ( JAVA 벤더에서 개발 )
org 일반적으로 비 영리 단체(오픈소스)의 패키지
com 일반적으로 영리단체(회사)의 패키지

자바패키지 이름지정시 유의사항

  • 패키지 이름은 모두 소문자로 지정해야한다.
  • 자바의 예약어를 사용하면 안된다.(ex. int, static)

import

다른 패키지에 있는 클래스를 참조할 때 사용되며 import 패키지이름.클래스이름 라고 명시하면 그 패키지에 있는 클래스를 사용하겠다는 것을 컴파일러에게 알려준다.

해당 패키지에 선언된 모든 클래스를 import하려면 import 패키지이름.* 이라고 명시한다

  • import static
    • 다른 패키지의 static 변수나 static 메소드를 사용할 때
    • 만약, import해서 static 메소드나 변수가 중복되면 자신의 클래스에 있는 static이 우선이다.
  • import 하지 않아도 되는 패키지
    • java.lang 패키지
    • 같은 패키지 

접근제어자

  해당 클래스 안에서 같은 패키지에서 상속받은 클래스에서 Import한 클래스에서
public O O O O
protected O O O X
(package-private) O O X X
private  O X X X
  • public : 누구나 접근할 수 있도록 할 때 사용
  •  protected : 같은 패키지 내에 있거나 상속받은 경우에만 접근 가능
  •  package-private : 아무런 접근 제어자를 적어주지 않을 때. 같은 패키지 내에 있을 때만 접근할 수 있다.
  •  private : 해당 클래스 내에서만 접근 가능

'언어 > JAVA' 카테고리의 다른 글

11장 API  (0) 2021.10.21
10장 상속  (0) 2021.10.19
8장 참조자료형  (0) 2021.09.21
6장 조건문 / 반복문  (0) 2021.09.19
5장 연산자  (0) 2021.09.16