[JAVA] 자바 클래스 외부 구성 요소 - 패키지와 임포트

    728x90

    안녕하세요

    로로봉입니다 : )

    이번에는 클래스의 외부에 위치할 수 있는 3가지 "패키지, 임포트, 외부 클래스" 중 패키지와 임포트에 대해 알아보겠습니다.


    1) 패키지

    패키지는 비슷한 목적으로 생성된 클래스 파일들을 한 곳에 모아 둔 폴더를 의미합니다.

    프로그램을 작성하다 보면 각각 목적에 따라 여러 개의 클래스 파일들이 생깁니다.

    이렇게 동일한 목적으로 만들어진 클래스들을 1개의 공간에 묶어 관리하기 위한 것이 패키지 입니다.

    1개의 프로젝트의 1개의 패키지를 생성할 수도 있고, 여러 개의 패키지를 생성할 수도 있습니다.

    패키지를 아에 생성하지 않아도 문법적으로는 전혀 문제가 되지 않습니다.

    생성된 패키지를 폴더의 구조상으로 보면 src 폴더의 하위 폴더에 위치합니다.

    컴파일이 수행되면 바이트 코드가 저장되는 bin 폴더에도 동일한 하위 폴더가 생성됩니다.

    아래와 같이 패키지를 생성한 것과 생성하지 않을 때를 비교해 보겠습니다.

    우선 이클립스를 실행해줍니다.

    [ 그림 1 : 이클립스 실행화면 ]

    Create a Java Project를 누르거나 File - New - Java Project 메뉴를 눌러서 프로젝트를 만들어 줍니다.

    [ 그림 2 : Java 프로젝트 생성 1 ]

    프로젝트 명은 JavaTest로 입력 후 Finish 버튼으로 프로젝트를 만들어 줍니다.

    [ 그림 3 : Java 프로젝트 생성 2 ]

    프로젝트가 생성 되었습니다.

    [ 그림 4 : Java 프로젝트 생성 완료 ]

    이제 JavaTest 프로젝트에서 우측 마우스를 눌러 New - Class를 선택해줍니다.

    [ 그림 5 : 클래스 생성 1 ]

    Test1 클래스는 패키지를 지정하지 않고, Test2 클래스는 패키지를 mypack.test로 지정하였습니다.

    [ 그림 6 : 클래스 생성 2 ]

    패키지를 지정하지 않으면 소스 코드 첫줄에 package 구문이 포함되지 않습니다.

    [ 그림 7 : Test1 소스 파일 ]

    반면 패키지를 지정하면 소스 코드 첫줄에 package 구문이 포함된 것을 볼 수 있습니다.

    [ 그림 8 : Test 2 소스 파일 ]

    패키지를 사용함으로서 동일한 목적의 클래스를 관리하는 이점도 있지만 여러명이 동일한 프로젝트를 함께 진행할 경우 패키지를 통해 클래스명의 충돌을 방지할 수 있습니다.


    2) 임포트

    임포트는 다른 패키지 내의 클래스를 사용하기 위한 것으로, 소스 코드상에서 패키지 구문 다음 줄에 위치합니다.

    프로그램이 동작할 때는 일반적으로 자신의 패키지 내부에 위치한 클래스만 사용할 수 있습니다.

    만약 자바가 제공하는 API나 다른 개발자가 만든 패키지에 위치한 클래스를 사용하고자 할 때는 2가지 방법으로 가능합니다.

    ① 클래스 풀네임 사용

    다른 패키지의 클래스를 사용하는 첫 번째 방법은 클래스의 풀네임을 사용하는 것입니다.

    클래스의 풀 네임은 "패키지명.클래스명" 이런 식으로 사용하는 것을 말합니다.

    ② 임포트 사용

    두 번째 방법으로는 보편적으로 사용하는 방법으로 임포트를 사용하는 것입니다.

    항상 풀네임을 사용하는 것은 너무 비효율적이기 때문에 임포트를 활용해야 합니다.

    임포트를 하게 되면 다른 패키지의 클래스를 마치 자신의 패키지 내부에 있는 것처럼 사용한다고 보면 됩니다.

    package mypack.test;
    
    import mypack.test.a;	// mypack.test 패키지 안에 a 클래스를 임포트
    
    public class Test {
       public static void main(String[] args) {
          // 객체 생성
          A a = new A();  // 임포트한 A 클래스에 대한 객체 생성
          
          System.out.println(a.a);
       }
    }

    mypack.test 안에 a 라는 클래스가 있다고 가정했을 때 a 클래스를 사용하기 위해 임포트해주면 내부에 있는 클래스 처럼 객체로 생성하여 사용할 수 있습니다.

    이클립스에서는 Ctrl + Shift + O 키를 누르면 자동으로 사용하고 있는 클래스들의 경로를 찾아 임포트해줍니다.

    자바 프로그래밍을 하기 위해선 이처럼 클래스에 대해 좀 더 자세히 알아야 나중에 구조를 이해하며 프로그램을 설계하고 만들 수 있습니다.

    좋아요 ♥ + 구독 부탁드립니다 : )

    728x90
    반응형

    댓글