티스토리 뷰

728x90
반응형

목표

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

 

스터디 목차

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

 

 

1. package 키워드

 

패키지 구조

자바에서 package는 물리적으로 하나의 디렉터리를 의미한다.

따라서 하나의 package에 속한 클래스나 인터페이스 파일은 모두 해당 package 이름의 디렉터리에 포함되어 있다.

이러한 package는 다른 package를 포함할 수 있으며, 이때 디렉터리의 계층 구조는 점(.)으로 구분된다.

 

 

패키지의 선언방법

package 이름에는 package의 경로까지 포함한 풀 네임을 명시해야한다.

package 패키지이름;

 

이름없는 패키지(unnamed package)

자바의 모든 클래스는 반드시 하나 이상의 패키지에 포함되어야 한다.

하지만 자바 컴파일러는 소스파일에  어떠한 패키지의 선언도 포함되지 않으면, 기본적으로 이름없는 패키지에 포함해 컴파일 한다.

따라서 패키지를 명시하지 않은 모든 클래스와 인터페이스는 모두 같은 패키지에 포함되게 된다.

 

 

 

2. import 키워드

 

외부 패키지의 클래스를 불러 사용하고자 할 경우 원래는 클래스명 앞에 패키지를 명시해야 한다.

예를 들어서 Scanner라는 클래스가 java.util 패키지에 속해 있다. 이것을 불러 사용하려면 다음과 같이 해야한다.

 

public class Main {
    static public void main(String[] args) {
        java.util.Scanner sc = new java.util.Scanner(System.in);
        int N = sc.nextInt();
    }
}

 

하지만 import문을 사용하면 매번 클래스 앞에 패키지 이름을 붙여 사용하지 않고 한번 선언해 줌으로써 편리하게 사용할 수 있다.

 

import java.util.Scanner;

public class Main {
    static public void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
    }
}

 

import문의 선언

해당패키지의 모든 클래스를 가져오고 싶을때는 *을 붙여준다.

import 패키지이름.클래스이름;
import 패키지이름.*;

 

자바에서 가장 많이 사용하는 java.lang 패키지에 대해서는 import문을 사용하지 않아도 클래스 이름만으로 사용할 수 있도록 해주고 있다.

 

 

 

3. 클래스패스(Class Path)

 

자바에서 클래스패스란 말 그대로 클래스를 찾기위한 경로이다. 즉, JVM이 프로그램을 실행할 때, 클래스파일을 찾는 데 기준이 되는 파일 경로를 말한다.

 

소스코드(.java로 끝나는 파일)를 컴파일하면 소스코드가 바이트코드(바이너리 형태의 .class 파일)로 변환된다.

java runtime(java 또는 jre)으로 이 .class 파일에 포함된 명령을 실행하려면, 먼저 이 파일을 찾을수 있어야한다. 이때 .class 파일을 찾을 때 classpath에 지정된 경로를 사용한다.

 

클래스패스를 지정할 수 있는 두 가지 방법이 있다. 하나는 환경변수 CLASSPATH를 사용하는 방법이고, 또 하나는 java runtime에 -classpath 플래그를 사용하는 방법이다.

 

 

 

4. CLASSPATH 환경변수

 

시스템 속성 -> 고급 -> 환경변수에 들어간다.

 

변수명은 JAVA_HOME으로 설정하고, 경로는 JDK의 경로를 지정해준다.

JDK에 저장된 bin폴더를 찾아가야 하기 때문에 path에 %JAVA_HOME%\bin으로 작성해준다.

 

 

 

5. -classpath 옵션

 

CLASSPATH 환경설정 하는 방법은 편리하지만 PC를 바꾸게 되면 다시 설정을 해줘야 하는 번거로움이 있기 때문에

-classpath도 자주 사용한다.

 

java -classpath ".;lib" 클래스이름

 

. 은 현재 디렉토리에서 찾아보라는 뜻이다.

; 은 경로와 경로를 구분하는 구분자이다.

 

 

 

6. 접근지시자

 

지시자 클래스 내부 동일 패키지 상속받은 클래스 이외의 영역
private O X X X
default O O X X
protected O O O X
public O O O O

 

private : 클래스 내부(메소드)에서만 접근을 허용한다.

default : 클래스 내부와 동일 패키지에서만 접근을 허용한다. (접근제어 지시자를 선언하지 않은경우를 말함)

protected : 클래스 내부와 동일패키지 상속받은 클래스에서만 접근을 허용한다.

public : 어디서든 접근 가능(접근을 제한하지 않는다.)

 

 

 

 

 

 

Reference


www.tcpschool.com/java/java_usingClass_package

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

hyoje420.tistory.com/7

 

[Java]환경변수(JAVA_HOME & CLASSPATH)

환경변수 공식적인 의미의 환경변수(Environment variable)는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들이다. OS상에서 동작하는 응용프로그램들이 참조하기위한 설정이 기

hyoje420.tistory.com

rank01.tistory.com/41

 

자바 - 접근제어 지시자

이번에는 접근제어 지시자의 관계에 대하여 공부하겠습니다. 。접근제어 지시자의 관계 지시자 클래스 내부 동일 패키지 상속받은 클래스 이외의 영역 private  ● X X X default ● ● X X protected ●

rank01.tistory.com

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30