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

7. java 패키지

by 수삼이는코딩중 2023. 4. 10.
728x90

패키지

클래스는 패키지를 이용하여 관련된 클래스들을 관리한다.

자바에서 패키지는 폴더와 거의 같은 기능을 제공한다고 생각하면 된다.

 

클래스를 만들다보면 개수가 매우 많아진다. 

클래스가 개수가 많아지면 관계 있는 것들을 모아서 관리해야 한다. 

패키지 -> 클래스를 모아논 폴더

 

패키지 이름 규칙

도메인 이름을 거꾸로 적은 후에 프로젝트 이름 등을 붙여서 만들게 된다. 

도메인.프로젝트명.패키지명

 

 

음악을 예로 들면, 음악을 어떻게 즐기느냐에 따라 폴더를 만드는 방식이 다르다. 

패키지에서도 관련된 클래스를 모으는 것이 중요한데 '관련된'을 어떻게 정의하는가?

패키지를 만든다는 것은 아키텍처와 매우 관련이 있다. (아키텍처 : 구조)

초가집, 양옥집, 아파트는 아키텍처도 다르고 재료도 다르다. 

초가집창고 : 초가집을 짓기 위한 재료를 놓는 공간

아파트창고 : 아파트를 짓기 위한 재료를 놓는 공간. 초가집창고와 다를 수 밖에 없다. 

패키지 이름은 아키텍처에 따라 달라진다. 외국에서는 프로그래머가 아키텍터

 

패키지 선언 포맷

package 패키지명;

주석문이나 빈 줄을 제외하고 가장 윗줄에 위와 같은 형식으로 선언한다. 

com.example.util

com이라는 폴더의 하위폴더에 example, 의 하위폴더에 util

JVM은 CLASSPATH에서 com을 찾고, 그 밑에 example을 찾고 그 밑에 util을 찾고 그 안에있는 클래스를 찾는다. 

 

패키지를 사용할 때

import 패키지명
package com.example.main;

import com.example.util.Calculator;

public class CalculatorMain {
    public static void main(String[] args){
        Calculator cal = new Calculator();
        int value = cal.plus(50,100);
        System.out.println(value);
    }
}

결과

150

Calculator라는 클래스가 다른 패키지에도 여러개 있을 수 있기 때문에

import를 이용해 Calculator가 어떤 패키지에 있는지 알려줘야 한다. 

즉, 패키지가 다르면 클래스 명이 같을 수 있다.

(intellij는 import를 자동으로 클래스 목록을 선택하면 삽입해준다)

 

다른 패키지의 같은 이름의 클래스명을 사용하려면 한쪽은 package이름을 다 적어줘야 한다. 

package com.example.main;

import com.example.util.Calculator;

public class CalculatorMain {
    public static void main(String[] args){
        Calculator cal = new Calculator();
        int value = cal.plus(50,100);
        System.out.println(value);

        com.example.util2.Calculator cal2 = new com.example.util2.Calculator();
        int value2=cal2.divide(100,50);
        System.out.println(value2);
    }
}

결과

150
2

댓글