korean IT student

[Java-Live-Study] 7주차 - 패키지 본문

back-end/JAVA

[Java-Live-Study] 7주차 - 패키지

현창이 2021. 10. 26. 14:29

 

목표

자바의 패키지에 대해 학습하세요.

학습할 것 (필수)

  • package 키워드
  • import 키워드
  • 클래스패스
  • CLASSPATH 환경변수
  • -classpath 옵션
  • 접근지시자

 

1. package 키워드

  • 클래스들을 분류하는 클래스의 묶음으로서 디렉터리와 같다.
  • 소스에 가장 첫 줄에 단 한 번만 명시되어야 함.
    • 같은 소스 파일의 클래스들은 모두 같은 패키지에 속함
    • 패키지 선언이 없으면 이름 없는 패키지에 속함
import java.util.*;
  • 패키지 이름 규칙
    • 소문자로 작성
    • 자바 예약어 사용 금지(ex: java)
  • 패키지를 사용하는 이유
    • 이름 충돌 방지
    • 클래스, 인터페이스, 이넘, 어노테이션 등 분류를 통해 쉽게 찾고 사용하기 위함
    • 접근 제어
    • 데이터 캡슐화

2. import 키워드

  • 다른 패키지에 속한 클래스를 사용하기 위한 키워드
import java.util.Map;

import java.util.*;
  • 위와 같이 동일한 패키지의 모든 클래스를 와일드카드(*)를 이용하여 생략 가능
  • static import
    • 일반 import와 다르게 메서드나 변수를 패키지, 클래스명 없이 접근 가능
    • 호출 시 클래스명, 메서드명에서 클래스명을 생략 가능
    • 자주 사용하는 정적 메서드를 간결하게 사용하기 위함
import static java.lang.System.out;

public class blog {
    public static void main(String[] args){
        // 일반적 import 시
        System.out.println("hello world");
        // System 생략
        out.println("hello world");
    }
}

 

3. 클래스패스(CLASSPATH)

  • 클래스를 찾기 위한 경로
  • JVM이 프로그램을 실행할 때 클래스 파일을 찾는데 기준이 되는 파일 경로
  • .class 파일이 포함된 디렉터리와 파일을 콜론으로 구분한 목록
  • CLASSPATH 환경변수
    • CLASSPATH 환경변수를 통해 클래스패스를 관리할 수 있다.
    • OS에 맞게 시스템 변수로 등록할 수 있다.
  • -classpath 옵션
    • java 명령 실행 시 옵션으로 클래스패스를 지정할 수 있다.
    • window의 경우 세미콜론, 리눅스의 경우 콜론으로 구분한다.
    • ex) java -cp c:\jdk1.8\work com.javachobo.book.PackageTest 

https://opentutorials.org/course/1223/5527

 

클래스 패스 - 생활코딩

본 수업에서는 IDE(eclipse, intellij)를 사용하지 않고 운영체제의 기본 에디터를 사용 한다. 클래스 패스 빈 디렉터리에 아래와 같이 코드를 작성한다. 필자는 프로젝트 디렉토리에 /srcbin 이라는 디

opentutorials.org

 

4. 접근지시자

  • public : 모든 접근 허용, 어떠한 클래스가 접근하든 모두 허용
  • protected : 같은 패키지와 상속받은 클래스 그리고 클래스 내부에서만 접근 가능
  • default : 기본 지정자, 특별히 접근 지정자를 명시하지 않을 시 적용됨, 같은 패키지와 클래스 내부에서만 접근
  • private : 외부에서는 접근이 불가능, 클래스 내부에서만 접근 가능

 

Comments