본문 바로가기
프로그래밍/JAVA

자바의 정석 기초 ( 패키지 / 패키지 선언 / 클래스 패스 / import문 / static import문 )

by ✲ 2020. 7. 10.
반응형

남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다. 

패키지 (package) 

- 서로 관련된 클래스의 묶음 

- 클래스는 클래스 파일 (*.class), 패키지는 폴더, 하위 패키지는 하위폴더 

- 클래스의 실제 이름(full name)은 패키지를 포함(java.lang.String) 

 

패키지 선언 

- 패키지는 소스파일의 첫 번째 문장으로 단 한번 선언 

- 같은 소스파일의 클래스들은 모두 같은 패키지에 속하게 된다. 

- 패키지 선언이 없으면 이름없는 (unnamed)패키지에 속하게 된다. (default package) 

 

*bin폴더 - 컴파일된 클래스 파일(*.class)이 있는 곳 

*src폴더 - 소스파일(*.java)이 있는 곳 

 

클래스 패스 (classpath)

- 클래스 파일(*.class)의 위치를 알려주는 경로 (path) 

- 환경변수 classpath로 관리하며, 경로간의 구분자는 ';'를 사용

classpath(환경변수)에 패키지의 루트를 등록하는 방법

- 제어판 > 검색창에 환경변수 검색 > 시스템 환경변수 편집 > 시스템 속성 > 고급 > 환경변수 > 새로만들기 > classpath > 패키지 주소를 복사하여 붙여넣기! 

> 위 내용은 이클립스가 자동으로 해주기 때문에 현재는 그냥 스윽 읽고, 보는 정도로만 

 

import문

- 클래스 사용할 때 패키지 이름을 생략할 수 있다. (ctrl + shift + o     ← import문 자동 단축키 )

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

 

import문 선언 

- import 패키지명.클래스명;    또는 import 패키지명.* ; (*은 모든 클래스) 

- import문은 패키지문과 클래스 선언의 사이에 위치 (패키지 선언, import문 , 클래스 정의 순으로) 

- import 문은 컴파일 시 처리되므로 프로그램의 성능에 영향 X 

- 이름이 같은 클래스가 속한 두 패키지를 import할 때 클래스 앞에 패키지명을 붙여줘야 한다. 

 

import java.util.* ;

import java.text.*; 

이 두개를 import java.*; 이렇게 사용 불가! import java.*; 은 java 패키지의 모든 클래스 (패키지는 포함 X ) 

 

static import 문 

- static멤버 사용할 때 클래스 이름을 생략할 수 있게 해준다. 

import static java.lang.Integer.*;            // Integer클래스의 모든 static 메서드

import static java.lang.Math.random;      // Math.random()만 괄호 안붙임

import static java.lang.System.out;         // System.out을 out만으로 참조가능

 

System.out.println(Math.random()); <---------------> out.println(random());

>static import 문은 꼭 필요할 때만 사용하는걸로! 

>코드가 길어지기 때문에 static import문을 사용하면 코드를 짧게 할 수 있어서 좋지만, 클래스이름이 있어야 알아보기 더 쉬워지기 때문?!! 

반응형

댓글