백기선 자바 라이브 스터디 7: 패키지

Hoyoung Jung·2021년 1월 2일
0

package

  • 패키지는 유관한 클래스들의 묶음이다.
  • 클래스가 파일 시스템에서 파일이고 패키지는 파일 시스템에서 폴더이다.
  • 클래스의 full name은 패키지명 + 클래스이름이다. ex) java.lang.String
  • rt.jar는 Java API의 기본 클래스들을 압축한 파일

package 선언

  • 주석제외 소스파일의 첫 번째 문장으로 단 한번 선언한다.
//Hello.java
package net.honux.study.whiteship;

public class Hello {}
  • 하나의 소스파일에 둘 이상의 클래스가 포함되도 모두 같은 패키지에 속하게 된다.
  • 하나의 소스파일에는 하나의 public class만 허용
  • 모든 클래스는 패키지에 속하게 된다.
  • 패키지가 선언되지 않은 클래스는 자동으로 default 패키지에 속하게 된다.

import 키워드

  • 자신의 패키지가 아닌 다른 패키지의 클래스를 simple name으로 참조하기 위해 사용함
  • 패키지 선언과 클래스선언 사이에 선언
import java.util.Date;

class HelloImport {
	Date today = new Date();
}
  • import 문은 컴파일 시 처리되므로 프로그램의 성능에 영향을 미치지 않는다고 한다.

  • java.lang 패키지 클래스는 import하지 않아도 사용할 수 있다. (String, Object, System, Thread, Math, ...)

static import

  • public static으로 선언된 멤버 변수와 메소드들을 클래스명없이 사용할 수 있게 해 준다.
import static java.lang.Math.PI;

public class Hello {
        public static void main(String[] args) {
                System.out.println(PI);
        }
}

클래스패스

  • 참조한 클래스를 찾는 경로
  • 구분자는 ;
  • 패키지가 포함된 폴더나 jar 파일을 나열한다.
  • 클래스패스를 지정하지 않으면 현재 폴더가 자동 포함되지만 클래스패스를 지정할 경우 현재 폴더를 지정해 줘어야 한다.

CLASSPATH 환경변수

  • CLASSPATH 환경변수를 이용해서 클래스패스 지정가능

-classpath 옵션

  • 실행시 -cp 또는 -classpath 옵션으로 클래스패스 지정가능
$ cat ./honux/Hello.java
//...
$ javac honux/Hello.java
$ java -cp . honux.Hello

접근지시자

Access ModifierWithin ClassWithin PackageOutside Package by Subclass OnlyOutside Package
publicOOOO
protectedOOXX
default (package private)OOXX
privateOXXX

참고 문헌

profile
주짓수를 좋아하는 개발자

0개의 댓글