티스토리 뷰

Java/개념정리

[Java] 자바 package

통통푸딩 2021. 9. 28. 19:56
반응형

1. package 키워드

패키지는 사용자가 만든 클래스나 인터페이스 등을 모은 단위를 말한다.

모든 클래스는 정의된 클래스 이름과 패키지 이름이 있다. 이 둘을 합쳐야 완전한 한 클래스를 표현한다고 하며 이것을 FQCN(Fully Qualified Class) 라고 한다.

예를 들어 String 클래스의 패키지는 java.lang 이고 FQCN은 java.lang.String이 된다.

 

쉽게 말하면, 패키지는 클래스를 구분짓는 폴더 개념이다.
그래서 패키지 이름과 위치한 폴더의 이름이 같아야 한다.
패키지 이름은 모두 소문자여야 하고, 자바의 예약어를 사용하면 안된다.

 

패키지명은 클래스의 파일 상단에 작성한다.

아래 클래스의 FQCN은 com.pudding.study.ExmapleClass 이 된다.

package com.pudding.study;

class ExmapleClass {
    //...
}




2. import 키워드

import 키워드는 다른 패키지에 있는 클래스나 인터페이스 등을 참조할 때 사용하는 키워드이다.
동일 패키지의 클래스나 java.lang 패키지의 클래스는 import 구문없이 참조가 가능하다.

패키지에 다수의 클래스를 import를 하는 경우 import 패키지명.* 으로 모든 클래스를 참조할 수 있다.

package com.pudding.study.model; //패키지

import com.pudding.study.ExampleClass;  //다른 패키지 클래스 임포트
//import com.pudding.study.*;  해당 패키지의 모든 클래스 참조 가능

public class StudyModel {
    ExampleClass ex = new ExampleClass();
}

이 때 import문은 FQCN을 입력해야 한다.




import static 으로 정적 멤버도 import 할수 있다.

static 한 변수( 클래스 변수)와 static 한 메소드를 사용하고자 할때 용이하다.
이것이 없다면, 항상 클래스.함수, 클래스.변수 형태로 이용해야한다.

package com.pudding.study;

public class ExampleStatic {
    public static final int MAX_VALUE = 10;

    public static void printMaxValue() {
        System.out.println("MAX_VALUE : " + MAX_VALUE);
    }
}
package com.pudding.study.model;

import static com.pudding.study.ExampleStatic.MAX_VALUE;
import static com.pudding.study.ExampleStatic.printMaxValue;

public class StaticModel {
    public static void main(String[] args) {
    System.out.println(MAX_VALUE);
    printMaxValue();
  }
}




3. 클래스패스(Classpath)

클래스패스는 JVM 혹은 Java 컴파일러가 사용하는 파라미터인데, 클래스나 패키지를 찾을 때 기준이 되는 경로를 말한다.

즉, java 명령을 통해서 클래스 파일을 실행할 때 클래스 파일을 찾는 기준이 되는 경로를 말한다. (java 명령을 실행하는 위치)

 

classpath를 지정하기 위한 두가지 방법이 있다.

1) CLASSPATH 환경변수 사용

2) java runtime 시에 -classpath 옵션 사용



 


4. CLASSPATH 환경변수

컴퓨터 시스템 변수 설정을 통해서 지정할 수 있는데,

JVM이 시작될 때 JVM의 클래스로더가 이 환경변수를 호출한다.

환경변수에 지정된 디렉토리가 호출되면 그 디렉토리에 있는 클래스들을 먼저 JVM에 로드한다.

그래서 CLASSPATH 환경변수에는 필수 클래스들이 위치한 디렉토리를 등록하도록 해야한다.

설정 방법은 아래 링크를 참조하면 된다.

https://blog.naver.com/PostView.nhn?blogId=alcmskfl17&logNo=221870079271

 

[JAVA] 자바 환경 변수 설정

명령 프롬프트에서 자바(Java)를 인식시켜 주기 위해 변수 설정을 한다. 또한 톰캣(Tomcat) 연동 시, 환...

blog.naver.com



 


5. -classpath 옵션

javac [options] [source files]

java runtime에 -classpath 옵션을 사용하면 classpath를 지정할 수 있다.

이 옵션은 지정한 CLASSPATH 환경변수보다 우선순위가 높다.

즉, 컴파일러가 컴파일하기 위해 필요로 하는 클래스파일들을 찾기 위한 파일 경로를 지정해주는 옵션이다.


javac -classpath C:\Java\JHclasses C:\Java\Hello.java

위와 같이 사용하면 된다.

그리고 -classpath 대신 -cp라고 단축어를 사용해도 된다.



 


6. 접근 지시자(Access Modifiers)

접근지시자는 멤버 변수나 메소드들의 접근 범위를 정의하기 위해 사용한다.

자바에서 사용하는 접근 지시자는 public, protected, default(접근 지시자 없음), private로 네가지 이다.

  • public : 접근의 제한이 없어 어디서든 접근 허용
  • protected : 동일 패키지, 상속받은 클래스에서만 접근 허용
  • default(접근지시자 없음) : 동일 패키지에서만 접근 허용
  • private : 해당 클래스 내부에서만 접근 허용

출처 :  https://kils-log-of-develop.tistory.com/430

 

반응형

'Java > 개념정리' 카테고리의 다른 글

[Java] 예외 처리  (1) 2021.10.06
[Java] 인터페이스(interface)  (0) 2021.10.06
[Java] 상속  (2) 2021.09.27
[Java] Queue  (0) 2021.09.23
[Java] Stack  (0) 2021.09.23
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday