본문 바로가기
Develop/Java

15 자바 Java 클래스패스

by 구운밤이다 2017. 1. 5.
728x90
반응형

2016/09/24 - [IT/Java] - 14 자바 Java 클래스패스 예제

이번 시간에는 패키지에 대해 알아볼 겁니다. 먼저 패키지란 자바의 클래스들을 접근제어하는 역할을 합니다. 그 패키지 안에 있는 클래스들끼리만 서로 접근이 가능하고 다른 패키지 안에 있는 클래스를 사용하고 싶다면 import 로 그 패키지를 불러와야 하죠. 


놀라운 사실을 한 가지 더 알려드리자면 자바의 모든 클래스들을 패키지에 소속되어 있답니다. 난 패키지를 지금까지 선언한 적이 없는데..? 하는 분들도 있을텐데요, 그렇게 패키지를 선언하지 않은 클래스들은 이름없는 패키지에 소속됩니다. 패키지를 선언하는 방법은 다음과 같아요.


package lec14;


class Pack {

 ...



이런식으로 패키지를 맨 위에 선언할 수 있습니다. 그럼 이 파일 속에 포함된 모든 클래스들은 패키지 lec14 에 포함되게 되죠. 그리고 이 패키지는 실제 lec14 라고 이름이 지어진 디렉토리가 필요합니다. 그 속에 자바 파일과 클래스 파일이 생기죠.


package lec14.aa;


class Pack {

 ...


그리고 이렇게 패키지를 선언하면 lec14라는 패키지 안에 aa라는 새로운 패키지가 생성이됩니다. 안에서도 똑같은 기능을 하고, 패키지 밖에서 사용하고 싶다면 import를 통해 불러와야겠죠? aa와 같은 패키지 속 패키지도 여러개 선언 가능합니다. 


그럼 이번에는 import 하는 방법을 알아보도록 하겠습니다. import 도 마찬가지로 파일의 맨 위에서 할 수 있는데요. 그 방법은 다음과 같습니다.


import lec14.aa;

import lec14.*;

import lec14;


class Test {

 ...



import는 크게 이렇게 3가지 방식으로 가능합니다. 맨 처음 방식으로 하면 lec14.aa 패키지 안의 클래스에서 생성자를 생성할 때 lec14.aa를 생략하고 클래스 이름만으로 선언이 가능합니다. 두 번째 방식으로 하는 경우 lec14안에 있는 패키지들로 클래스 인스턴스를 생성할 경우 lec14 를 생략하고 aa.Pack p = new Pack(); 이런 식으로 하면 되는 거죠. 세 번째 방식은  lec14까지 생략하지 않고 모두 써주는 방식입니다. 아래 방식일수록 가장 생략하는 부분이 적으니 같은 이름의 클래스가 다른 패키지 안에 있었을 경우 혼동가능성이 작겠죠?


728x90
반응형

댓글