package:
클래스를 체계적으로 관리하기 위한 도구 / 클래스들을 구분 짓는 폴더
패키지의 물리적인 형태는 파일 시스템의 폴더
단순히 파일 시스템의 폴더 기능만 하는 것이 아니라 클래스의 일부분
클래스를 유일하게 만들어주는 식별자
클래스 이름이 동일해도 패키지가 다르면 다른 클래스로 인식한다. 또한 패키지 내부에 패키지를 둘 수도 있다.
상위패키지.하위패키지.클래스
패키지를 나타내는 코드
package day10.pack1;
public class ClassName {
}
이는 파일 시스템에서 다음과 같이 보여진다.
같은 패키지에 속하는 클래스들은 아무런 조건 없이 다른 클래스를 사용할 수 있지만, 다른 패키지에 속하는 클래스를 사용하려면 import 문을 사용해야 한다.
패키지의 포함된 다수의 클래스를 사용해야 한다면 클래스 이름을 생략하고 대신 *를 사용해서 import문을 한 번 작성한다.
import day10.pack2.*;
import a.*;
이렇게 선언한다고 a 패키지 밑에 있는 모든 패키지를 import하지는 않는다. * 사용하면 그 패키지에 선언된 클래스들만 import 한다. 즉, a.b, a.b.c에 선언된 클래스는 import하지 않는다.
다음의 소스코드로 작성된 Main.java라는 파일이 있다고 가정해보자.
class Print{
void firstPrint(){
System.out.println("Hello World!");
}
}
public class Main {
public static void main(String[] args){
Print print = new Print();
print.firstPrint();
}
}
컴파일 후 Print.class 를 다른 디렉토리로 옮기면 Main 클래스는 실행이 되지 않는다.
java -classpath ".:디렉토리명" Main
의 명령으로 classpath 옵션을 준 후 실행해야 한다.
import java.util.Scanner;
import java.io.*;
String s1 = new String(“Hello”);
java.lang.String s2 = new java.lang.String(“Hello”);
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd", Locale.KOREAN);
-- 자료구조와 관련된 Collections Framework 관련 인터페이스와 클래스
-- 이벤트 모델과 국제화 기능
-- StringTokenizer, 난수 생성기
String lyincs = "Yesterday all my troubles seems so farawat";
StringTokenizer tokenizer = new StringTokenizer(lyincs);
while(tokenizer.hasMoreTokens()) {
System.out.println(tokenizer.nextToken());
}
Random random = new Random();
int max = 10, min = 1;
int value = random.nextInt(max - min + 1) + min;
System.out.println(value);
-- Scanner 클래스 등 다양한 클래스와 인터페이스 포함