티스토리 뷰
이번에 공부하던 중 이상한 부분에서 에러가 발생했다. 에러의 내용은 정확히 기억이 나지 않지만 패키지(Package)에서 에러가 발생했다. 자바에서 패키지가 도대체 무엇을 의미하는 지 궁금하여 이번 포스팅을 작성한다.
패키지(package)
패키지(Package)는 클래스의 모음이다. 기본적으로 제공되는 자바 라이브러리에서도 java.lang.*, java.util.*, java.net.*, java.awt.* 등과 같은 다양한 패키지로 분류하고 있다. 자바 라이브러리는 디렉토리 구조와 같은 계층적 패키지 구조를 가지고 있어 상위 패키지 안에 하위 패키지가 속해있는 형식으로 구성되어 있다. 이러한 모든 패키지는 java와 javax 패키지에 종속되어 있다.
그렇다면 JAVA는 왜 패키지를 사용하는 것일까? 아래 두개의 클래스를 보자.
src/dae.java
1 2 3 4 5 | public dae { public static void study() { System.out.println("dae"); } } | cs |
src/under/rong.java
1 2 3 4 5 | public rong { public static void study() { System.out.println("rong"); } } | cs |
위 두 클래스의 study() 메소드의 이름이 일치한다. 프로그램의 규모가 커지거나 협업 과정에서 이 같이 같은 이름의 메소드가 발생할 수 있다. 이런 경우 패키지를 사용하지 않고는 서로다른 경로의 클래스에서 정의된 같은 이름의 메소드를 사용할 수 없다. 이에 대한 자세한 설명을 위해 링크를 첨부한다. ( 링크 : http://wanzargen.tistory.com/13 )
이렇게 서로 다른 패키지를 사용함으로써 클래스 명의 고유성을 유지할 수 있는 것이다.
그렇다면 패키지는 어떻게 사용할 수 있을까?
1) package 패키지 이름 / 패키지 경로;
1 | package packageName or packageRoot; | cs |
1 2 3 4 5 6 7 | package com.daerong; class study { public static void main (String[] args) { System.out.println("Welcome"); } } | cs |
위 처럼 작성된 파일을 콘솔창을 통해 작성합니다.
2) javac -d <디렉토리> . <파일 이름>
1 | C:\program Files\daerong>javac -d . fileName.java | cs |
이제 패키지를 가져옵시다.
3) import <패키지 이름 / 패키지 경로> . 클래스 명; // *을 통해 모든 클래스를 가져올 수 있습니다.
1 2 | import packageName or packageRoot.className; import packageName or packageRoot.*; | cs |
1 2 3 4 5 6 7 8 | import com.daerong.*; class nextStudy { public static void main (String[] args) { } } | cs |
저와 같은 초급 단계에선 기본 패키지로도 충분하기 때문에 아래 패키지를 이용하도록 합시다.
패키지 명 |
설명 |
java.lang |
기본적인 클래스 모음(자동 import) |
java.awt |
GUI 관련 클래스 모음 |
java.io |
데이터 입출력에 관한 클래스 모음 |
java.util |
유용한 유틸리티 클래스 모음 |
java.net |
네트워크 관련 클래스 모음 |
java.text |
텍스트 관련 클래스 모음 |
java.sql |
데이터베이스 관련 클래스 모음 |
java.applet |
애플릿(Applet) 관련 클래스 모음 |
'프로그래밍 > Java' 카테고리의 다른 글
Java 프로그래밍 -프로세스, 쓰레드- (1) | 2018.03.02 |
---|---|
Java 프로그래밍 -메모리 구조- (1) | 2018.02.26 |
Java 프로그래밍 -연산- (0) | 2018.02.23 |
Java 프로그래밍 -이스케이프 문자- (1) | 2018.02.23 |
Java 프로그래밍 -입출력- (0) | 2018.02.23 |
- Total
- Today
- Yesterday
- garbage collection
- RDBMS
- PostgreSQL
- REACT
- JavaScript
- gcp
- Gatsby.js
- vue
- SQLite
- alpine.js
- 이진탐색 #중복
- MySQL
- Next.js
- C#
- nosql
- vue.js
- node.js
- aws
- Angular
- oracle
- svelte
- DevOps
- nuxt.js
- delegate
- Azure
- Quasar
- LINQ
- Cloud
- hoisting
- .NET
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |