TaBo
개척하는 기록
TaBo
전체 방문자
오늘
어제
  • 기록들 (63)
    • Programming (35)
      • Java (19)
      • Servlet&Jsp (4)
      • Spring (4)
      • SpringBoot (1)
      • 기타 (2)
      • BOJ (5)
    • CS (16)
      • 자료구조 (4)
      • 알고리즘 (4)
      • 운영체제 (5)
      • 기본 용어 (3)
    • Project (4)
      • [Spring] 게시판 (4)
    • 나에 대한 기록 (8)

블로그 메뉴

  • Github

인기 글

태그

  • 알고리즘
  • 백준
  • 운영체제
  • 스프링 게시판
  • c++
  • 자바
  • spring
  • OS
  • java
  • Spring 게시판

최근 글

티스토리

hELLO · Designed By 정상우.
TaBo

개척하는 기록

[Java] 패키지(Package)
Programming/Java

[Java] 패키지(Package)

2022. 8. 5. 16:32

※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요!

 

[ 1 ] 패키지란?

하나의 컴퓨터에는 같은 이름을 가진 2개의 파일이 공존할 수 없다. 즉, 내가 test.txt 파일을 작성해서 저장했다면, 그 내용이 다를지라도 또다른 test.txt 파일을 저장할 순 없는 것이다.

 

이러한 불편함을 해결해 준 것은 '폴더'였다. 우리는 카테고리를 설정하여 그에 상응하는 폴더를 생성하고, 그 폴더 내에는 비슷한 내용을 담은  수많은 파일들을 저장할 수 있게 되었다. 또한, 각자가 다른 폴더에 저장되어 있다면 같은 이름을 가진 파일도 공존할 수 있게 되었다.

 

Java의 패키지도 폴더와 같은 역할을 한다. 비슷한 성격의 클래스들을 하나의 패키지에 모아 저장할 수 있는 것이다. 패키지를 활용함으로써 우리는 클래스의 이름이 동일하더라도 다른 패키지에 속해 있다면 각 클래스를 사용할 수 있고, 클래스의 분류도 용이하게 할 수 있다.

 


[ 2 ] 패키지 사용하기

서로 다른 클래스가 동일한 패키지에 속해있다면 자유롭게 각 클래스를 활용할 수 있지만, 다른 패키지에 속한 클래스를 사용하기 위해서는 import라는 것을 해야 한다.

 

package example1;

public class A {}

 

package example2;
import example1.A;

public class B {
    public static void main(String[] args) {
        A a = new A();
    }
}

 

다음과 같이 A 클래스는 example1 패키지에 있고, B 클래스는 example2 패키지에 있다고 가정하자. 각 클래스는 서로 다른 패키지에 속해 있기 때문에 B 클래스가 A 클래스를 사용하기 위해서는 

 

import example1.A;

 

라는 코드를 작성해야 한다.

 

이는 import를 통해 example1 패키지에 있는 A 클래스를 사용하겠다는 의미이며 위 코드를 작성하면 example2 패키지에 속한 B 클래스에서도 example1 패키지에 속한 A 클래스를 사용할 수 있다.

 

 

[ 주의 ]

아직 클래스 접근 제어자(access modifier)에 대해 다루지 않았지만, public class로 정의된 클래스만 다른 패키지에서 사용 가능하다. default class는 같은 패키지 내에서만 사용 가능하다.

 

 

[ 참고자료 ]

생활코딩 Java

저작자표시 비영리 변경금지 (새창열림)

'Programming > Java' 카테고리의 다른 글

[Java] 다형성(Polymorphism)  (0) 2022.08.16
[Java] 추상 클래스(abstract class)와 인터페이스(interface)  (1) 2022.08.11
[Java] Overriding, Overloading  (0) 2022.08.04
[Java] 생성자 및 상속에서의 생성자  (0) 2022.08.02
[Java] 클래스(class)의 구성과 클래스 멤버 및 인스턴스 멤버  (1) 2022.08.01
    'Programming/Java' 카테고리의 다른 글
    • [Java] 다형성(Polymorphism)
    • [Java] 추상 클래스(abstract class)와 인터페이스(interface)
    • [Java] Overriding, Overloading
    • [Java] 생성자 및 상속에서의 생성자
    TaBo
    TaBo

    티스토리툴바