yoni

[16][OOP] package(Folder, Directory), Package Import 본문

java of educational by contents

[16][OOP] package(Folder, Directory), Package Import

yoni-1117 2018. 12. 1. 19:18

[01] package(java, '.') = Folder(windows, '\') = Directory(linux, '/') 동일함. 

     - 폴더에서 파일을 분류하듯이 패키지(폴더)도 클래스를 그룹별로 분리합니다. 
   
   


1. package 실습 

1) '/src/sungjuk' 패키지(폴더, 디렉토리)를 생성 



2) 생성된 패키지 확인
 

3) 'sungjuk' 패키지를 선택하고 클래스 추가


4) package를 지우지말고 Student class 추가


5) 클래스 생성후 아래처럼 작업합니다.
▷ /src/sungjuk/Student.java 

--------------------------------------------------------------------
package sungjuk;
 
public class Student {
  String name = "왕눈이";
  String grade = "A";
  
  public void print(){
    System.out.println(this.name); // this 생략 가능
    System.out.println(this.grade);
  }
}
 
 
--------------------------------------------------------------------
 
 
6) 같은 패키지안에서 사용 


[실행 화면]

왕눈이
A
 
▷ /src/sungjuk/StudentUse.java 
--------------------------------------------------------------------

package sungjuk;
 
public class StudentUse {
 
  public static void main(String[] args) {
    Student student = new Student();
    student.print();
 
  }
 
}
 
 
--------------------------------------------------------------------
 
 
7) 콘솔창에서 CLASSPATH에 '.'의 경로를 확인 하세요.
   - 설정후 'cmd' 명령을 다시 실행합니다.
 

    /ws_java/oop/bin/sungjuk>echo %JAVA_HOME%
    C:\jdk1.8.0
 
    /ws_java/oop/bin/sungjuk>echo %CLASSPATH%
    .;C:\jdk1.8.0\lib\tools.jar
 
  
 
8) 터미널(콘솔)에서의 실행
    - 패키지에 소속된 클래스는 패키지 외부에서 실행해야 클래스 인식이 됩니다.
    - 실행시 클래스 앞에 패키지를 전부 명시해야 합니다.
    - 'bin' 폴더에서 실행합니다.
    - Eclipse는 이모든 작업을 자동화해줍니다.

C:/작업 기준 폴더/ws_java/oop/bin/sungjuk>java StudentUse
오류: 기본 클래스 StudentUse을(를) 찾거나 로드할 수 없습니다.
  

- 패키지안에 있는 클래스는 패키지밖에서 실행해야합니다.

C:/작업 기준 폴더/ws_java/oop/bin>java sungjuk.StudentUse
성명: 왕눈이
Grade: A
  
   
2. 다른 패키지의 클래스 사용
   - 다른 패키지의 클래스는 기본적으로 사용할 수 없습니다.
   - import(수입) 선언을 이용하면 사용 가능합니다.

1) /src/school 패키지(폴더)를 생성 


2) 'StudentUse.java' 클래스 생성


[실행 화면]

왕눈이
A
 
▷ /src/school/StudentUse.java 
--------------------------------------------------------------------

package school;
 
// import sungjuk.*;
import sungjuk.Student;
 
public class StudentUse {
 
  public static void main(String[] args) {
    Student student = new Student();
    student.print();
 
  }
 
}
 
 
 
--------------------------------------------------------------------
 
 
 
3. 2단 이상의 package 실습[ src -> new -> Package ]
   - '.'은 자바에서 폴더의 구분자 역활을 합니다.
     운영체제에서 '\', '/'는 폴더의 구분자 역활을 합니다.

1) dev.blog.java        -> /src/dev/blog/java 
   dev.blog.jsp          -> /src/dev/blog/jsp 
   dev.blog.spring      -> /src/dev/blog/spring 
   dev.blog.project     -> /src/dev/blog/project 
   

   


    1단  2단  3단
2) dev.blog.visit       -> 방명록
   dev.blog.itnews    -> IT News
   dev.blog.humor    -> 코믹 게시판
   dev.blog.health     -> 건강 게시판
   dev.blog.travel      -> 여행 상품
   dev.blog.member  -> 회원
   dev.blog.login       -> 로그인 내역
   dev.blog.admin     -> 관리자
   dev.blog.source    -> 프로그램 소스 자료실
   dev.blog.gallery    -> 이미지 갤러리
   dev.blog.survey    -> 설문 조사
   dev.blog.media    -> MP3/MP4 플레이어
   dev.blog.schedule -> 일정
   dev.blog.product  -> 판매 상품
   dev.blog.order     -> 주문
   dev.blog.reply      -> 상품평
   dev.blog.qna       -> 문의

   - 회사명을 패키지로 지정(도메인 역순)
     http://weather.kma.co.kr → kr.co.kma.weather.qna
     http://week.weather.com → com.weather.week.gallery


3) 1단 패키지에서의 클래스 생성
- Class 생성시 패키지를 dev로 지정하세요.

 
▷ /src/dev/Test.java 
--------------------------------------------------------------------
package dev;
 
public class Test {
 
  public static void main(String[] args) {
    // TODO Auto-generated method stub
 
  }
 
}

--------------------------------------------------------------------
 
4) 2단 패키지에서의 클래스 생성
- Class 생성시 패키지를 dev.blog로 지정하세요.

 
▷ /src/dev/blog/Test.java 
--------------------------------------------------------------------
package dev.blog;
 
public class Test {
 
  public static void main(String[] args) {
    // TODO Auto-generated method stub
 
  }
 
}

--------------------------------------------------------------------

 
5) 3단 패키지에서의 클래스 생성
- Class 생성시 패키지를 dev.blog.java로 지정하세요.

 
▷ /src/dev/blog/java/Test.java 
--------------------------------------------------------------------
package dev.blog.java;
 
public class Test {
 
  public static void main(String[] args) {
    // TODO Auto-generated method stub
 
  }
 
}

--------------------------------------------------------------------
 


Comments