남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다.
패키지 (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문을 사용하면 코드를 짧게 할 수 있어서 좋지만, 클래스이름이 있어야 알아보기 더 쉬워지기 때문?!!
'프로그래밍 > JAVA' 카테고리의 다른 글
자바의 정석 기초 ( 캡슐화 / 다형성) (0) | 2020.07.12 |
---|---|
자바의 정석 기초 ( 제어자 / 접근 제어자 / public / protected / default / private ) (0) | 2020.07.12 |
자바의 정석 기초 ( 참조변수 super / 생성자 super() ) (0) | 2020.07.10 |
자바의 정석 기초 ( 단일상속 / Object 클래스 / 오버라이딩 / 오버로딩 ) (0) | 2020.07.10 |
자바의 정석 기초 ( 상속 (Inheritance) / 포함 (composite) ) (0) | 2020.07.10 |
댓글