package와 import

서지우·2023년 7월 11일
0

JAVA

목록 보기
16/28

패키지(package)

- 서로 관련된 클래스와 인터페이스의 묶음
- 클래스가 물리적으로 클래스파일(.class)인 것처럼, 패키지는 물리적으로 폴더
- 패키지는 서브패키지를 가질 수 있으며, '.'으로 구분
- 클래스의 실제 이름은 패키지명이 포함된 것
- JDK설치 경로는 jre/lib에 위치


import문

- 사용할 클래스가 속한 패키지를 지정하는데 사용
- import문을 사용하면 클래스를 사용할 때 패키지명을 생략할 수 있음
- java.lang패키지의 클래스는 import하지 않아도 사용할 수 있음

import문은 패키지문과 클래스선언 사이에 선언


import문은 컴파일 시에 처리되므로 프로그램의 성능에 아무런 영향 미치지 않음


두 코드는 서로 의미가 다름


이름이 같은 클래스가 속한 두 패키지를 import할 때에는 클래스 앞에 패키지명을 붙여줘야 함


실습

실습을 위해 sub폴더를 생성해 java파일을 하나 만들어준다.

(import를 어떻게 하는지 실습한 거라 안의 내용은 중요시 보지 않아도 됨..나중에 다시 나올 예정..)

package ch07.sub;

public class Sub01 {
    // 객체지향에서 데이터는 객체만 볼 수 있는게 기본적이다.
    private String data = "데이터";

    // 객체의 데이터를 외부에 노출 시키는 것은
    // 보통 메소드로 한다
    // 원본 데이터를 넘길 수도 있고
    // 숨겨야 하는 부분은 숨길 수도 있다
    public String getData(){
        return "숨긴 " + data;
    }

}

패키지 아래에 import해서 Sub01.java안에 있는 클래스를 사용할 수 있다.

(import를 어떻게 하는지 실습한 거라 안의 내용은 중요시 보지 않아도 됨..나중에 다시 나올 예정..)

package ch07;

import ch07.sub.Sub01;

public class S06 {
    public static int first = 1;
    public int second = 2;
    public static final int third = 1;

    public void printSecond(){
        System.out.println(second);
    }

    public static void main(String[] args) {
        Sub01 sub01 = new Sub01();
        System.out.println(sub01.getData());

        System.out.println(first); //S06.first와 같다
        System.out.println(S06.first);

        // System.out.println(second); //가져올 수 없다
        // System.out.println(printSecond()); //실행할 수 없다.

        // static이 아닌 필드는 인스턴스를 생성해서 가져와야 한다.
        // (static 메소드 기준)
        S06 s06 = new S06();
        System.out.println(s06.second);
        s06.printSecond();

        S06.first = 11;
        // final 값은 바꿀 수 없다
        // S06.third = 33;

        final String str = "홍길동";
        // str = "임꺽정";

    }
}
profile
미래가 기대되는 풀스택개발자 공부 이야기~~

0개의 댓글