본문 바로가기
JAVA/명품 자바 프로그래밍 6장

명품 자바 프로그래밍 6장 - 패키지

by 집돌이디벨로퍼 2023. 9. 25.

패키지가 필요한 이유

개발자 1 - A작업 - ...,class Tool

개발자 2 - B작업 - ...,class Tool

개발자 3  - C작업 - ...,class Tool

만약 각각의 개발자들이 작성한 클래스 명칭이 같아질경우 파일이 중복된다

따라서 이때는 개발자들 각자 디렉터리를 만들고 구분시켜줘야한다

이때 디렉터리를 패키지라고 부르고 경로명은 점을 찍어 표현한다.

 

ex)
Project.개발자1.Tool.class
Project.개발자2.Tool.class

 

 

 

구성 예시

클래스를 지칭할때 모듈명 사용X

패키지명을 포함하는 경로명으로 나타낸다

ex)
java.util.Scanner

// 해석:  java 의 util 안에있는 Scanner 클래스

import와 클래스 경로

 

다른 패키지에있는 클래스를 사용하고자 할 경우

패키지명을 포함하는 경로명을 사용해야함! => 컴파일러로 클래스 파일의 위치를 찾기 위함

 

 

public class ImportExample{
 public static void main(String[] args){
 java.util.Scanner scanner = new java.utilScanner(System.in); // 아래 코드와의 차이점
 System.out.println(scanner.next());
 }
 }

여기서 import문을 사용하면

아래의 코드처럼 번거로움을 덜 수 있다

import java.util.Scanner;
public class ImportExample{
 public static void main(String[] args){
 Scanner scanner = new Scanner(System.in);  // 편해짐
 System.out.println(scanner.next());

+  java.util.*; 을 사용하면 일일이 클래스마다 import문으로 작성할 필요가 없어진다!

import java.util.*;  // 모든 유틸들의 클래스들 사용하겠다 선언
public class ImportExample{
 public static void main(String[] args){
	 Scanner scanner = new Scanner(System.in);
     System.out.println(scanner.next());

패키지 만들기

keyboard 클래스를 작성해여 computer  패키지에 저장하고자 한다면 아래와 똑같이 하면된다.

pakage computer;
public class keyboard{
....
}

 computer 디렉터리에 저장된다면 경로는 아래와 같다.

computer.keyboard

 

다른 패키지에 있는 클래스에서 keyboard 클래스를 사용하고자 할 때

=> import문을 사용한다

import computer.keyboard;

다른 패키지에 있는 클래스 불러오기

/* pakage computer 에서 keyboard 클래스를 불러오려하는 경우
*/
import computer.keyboard; // keyboard 경로명 놓기
public class mouse{
public void install(){
keyboard k = new keyboard(); 
 }
}

현재에 있는 페이지에서 다른 패키지에 있는 클래스를 불러오고 싶을 경우 [import 경로명] 을 작성해야한다.

이방법을 사용한다면 재사용성Good

 

- Cost 클래스를 Book 패키지에 속하게 하고자 할때

pakage Using;   
public class Cost{
public int sum(int a, int b){return a+b;}
}

=> 자기 자신의 클래스는 경로에 쓰지 않아도 된다 (pakage Using.Cost; 가 아님 X)