패키지 Package
패키지란?
* 클래스들을 묶을 수 있는 단위.
* 패키지 = 파일, 클래스 = 파일 안에 담긴 데이터라고 생각하는 게 쉽다.
* 패키지명은 보통 소문자
사용하는 이유
* 클래스를 묶을 수 있는 단위가 생겼다.
↓
* 연관된 클래스끼리 패키지 단위로 묶을 수 있다.
↓
* 수 많은 클래스가 한번 정리가 되어 보기 편하고, 유지 및 관리가 쉽다.
* 클래스명 중복이 일어나도 패키지가 다르다면 문제가 없다.
패키지명 중복
* 패키지의 사용으로, 클래스 이름 충돌이 일어나도 괜찮아졌지만
패키지 이름충돌이라는 새로운 문제점이 생겼다.
* 패키지명의 중복은 꼭 피해야 한다.
패키지명의 고유성을 보장하기 위해 최상위 패키지명을
인터넷 도메인 주소를 역순으로 사용하기도 한다.
* 도메인을 역순으로 패키지 경로를 만든다면
com.tistory.licktwice으로 최상위 패키지명을 만들 수 있다.
(거의 중복될 리 없는 패키지명)
패키지와 똑같은 파일 구조
* 자바는 패키지명과 똑같은 파일 구조에. java파일을 넣을 것을 강제한다.
* IDE를 사용하면 알아서 해줌.
(com.naver 패키지 안에 있는 HelloNaver.java)
* Eclipse -> Project layout -> Create separate folders for sorces and class files로 설정
빌드 및 실행
* .java 파일이 컴파일되면 .class 파일이 나온다.
* .class 파일은 기계어가 아닌 바이트 코드로 이루어져 있다.
.class 파일은 운영체제가 실행하는 exe 같은 게 아니다. JVM이 필요
* .class 파일은 .java와 동일한 패키지 구조를 생성한다.
라이브러리 만들기
* 자바는 실행되는 프로그램과 라이브러리가 모두 .jar 파일로 만든다.
.jar 파일은 zip처럼 압축 파일과 같다. 실제로 압축 프로그램을 사용해 풀 수 있다.
* .jar 파일 내부에는 MANIFEST.MF라는 파일이 생성된다. 만들 수도 있음.
* Manifest 파일은 자바 애플리케이션 정보를 담고 있는 메타데이터 파일이다.
귀여운 그림은 낡은 창고님이 그리셨습니다.
'자바 JAVA' 카테고리의 다른 글
[JAVA]자바 - 다형성 Polymorphism (1) | 2021.06.30 |
---|---|
[JAVA]자바 - 데이터 추상화 Data Abstraction (0) | 2021.06.29 |
[JAVA]자바 - 캡슐화 Encapsulation (0) | 2021.06.29 |
[JAVA]자바 - 빌드와 라이브러리 (0) | 2021.06.24 |
자바 JAVA (0) | 2021.02.07 |