7주차 과제: 패키지(미완)

2021. 1. 28. 16:54
728x90

목표

자바의 패키지에 대해 학습하세요.

학습할 것 (필수)

  • package 키워드
  • import 키워드
  • 클래스패스
  • CLASSPATH 환경변수
  • -classpath 옵션
  • 접근지시자

package 키워드

 

  • 자바에서 패키지란 클래스들의 모임이다.
  • 물리적 형태는 파일 시스템의 폴더이다.
  • 파일 시스템의 폴더 기능만이 아니라 클래스의 일부분이다.
  • 패키지를 통해 편리하게 프로젝트를 관리할 수 있고, 서로 다른 라이브러리들끼 서로 구분가능하다.
  • 자바 라이브러리는 일반 폴더구조에서 볼수 있는 계층적 패키지 구조를 가진다.
  • 상위패키지에 하위패키지가 종속되는 형식
  • 그래서모든 자바 패키지들은 가장 상위 패키지인 java와 javax패키지에 종속되어 있다.
  • 소스에 가장 첫 줄에 있어야하고, 패키지 선언은 소스 하나에 하나만 있어야한다.
  • 클래스의 전체 이름은 "패키지명 + 클래스명"
  • 패키지가 상,하위로 구분되어 있다면 점(.)을 사용해서 표현한다.

 

 

 

패키지를 사용하는 이유

클래스명의 고유성을 보장하기 위해서 이다. => 클래스를 유일하게 만들어주는 식별자 역할

패키지 이름의 고유성을 보장하기 위해 최상위 패키지명에 인터넷 도메인주소를 거꾸로 사용하기도 한다.

인터넷 도메인은 이미 고유성을 가지고 있기 때문.

 

 

 

패키지 명명 규칙

  • 회사 이름이 혹은 도메인 들은 고유하기 때문에 사이트명으로 많이 구분함.
  • 웹사이트 주소를 반대로 기재한 모양으로 패키지 이름을 부여
  • 명칭은 소문자로 작성
  • 패키지명에 대문자는 사용하지 않는게 좋음.
  • 소스 파일들을 각각의 그룹으로 구분하기 위해 점으로 구분
  • 패키지 이름으로 소스가 들어가는 폴더가 자동으로 만들어짐
  • 자바의 예약어를 사용하면 안된다.

FQCN (Fully Qualified Class Name)

모든 클래스에는 정의된 클래스 이름과 패키지 이름이 있다.

이 둘을 합쳐야 완전하게 한 클래스를 표현할 수 있으며 FQCN(Fully Qualified Class Name)이라 한다.

ex) String 클래스의 패키지는 "java.lang" 이며 FQCN은 "java.lang.String"이 된다.

 

빌트-인 패키지(Built-in Package)

자바는 개발자들이 사용할 수 있도록 여러 많은 패키지 및 클래스를 제공한다.

가장 자주 쓰이는 패키지로는 java.lang과 java.util이 있다.

java.lang은 자주 사용하는 패키지이지만 한번도 import하여 사용한적이 없다.

즉, 자바에서 java.lang 패키지는 아주 기본적인 것들이기 때문에 import로 불러오지 않아도 자바가 알아서 java.lang의 클래스를 불러온다.

 

 

import 키워드

 

다른 패키지에 있는 클래스를 찾지 못할 때 사용.

패키지에 다수의 클래스를 import하는 경우 import 패키지명.* 처럼 import할 수 있다.

import static의 경우, static 한 변수( 클래스 변수)와 static 한 메소드를 사용하고자 할때 용이하다. ( 이것이 없다면, 클래스.함수, 클래스.변수 형태로 이용해야함.)

 

 

클래스패스(Classpath)

클래스패스는 JVM 혹은 Java 컴파일러가 사용하는 파라미터인데 클래스나 패키지를 찾을 때 기준이 되는 경로를 말합니다.

즉, java 명령을 통해 클래스 파일을 실행할 때 클래스 파일을 찾는 기준이 되는 경로를 클래스패스라고 하며 기본적으로는 java 명령을 실행하는 위치를 의미 합니다.

java HelloWorld 명령이 실행 되는 현재 경로가 기본 클래스패스 입니다.

 

 

CLASSPATH 환경변수

.

-classpath 옵션

 

접근지시자 (Access Modifiers)

접근 지시자는 멤버 변수나 메소드들의 접근 범위를 정의하기 위해 사용 합니다.

  • public : 접근을 제한하지 않아 어디서든 접근이 가능합니다.
  • private : 클래스 내부에서만 접근을 허용 합니다.
  • protected : 클래스 내부, 동일 패키지, 상속받은 클래스에서만 접근을 허용 합니다.
  • default(명시하지 않음) : 클래스 내부와 동일 패키지에서만 접근이 가능합니다.

 

지시자 클래스 내부 동일 패키지 상속받은 클래스 이외
private O X X X
default O O X X
protected O O O X
public O O O O

 

 

 


출처

 

 

9. Java 자바 - 패키지 (package)

패키지 (package) 많은 클래스들을 체계적으로 관리하기 위함이다. 폴더를 만들어서 파일을 저장하듯, 패키지를 만들어서 클래스를 저장 / 관리한다. 패키지의 물리적 형태는 파일 시스템의 폴더

kephilab.tistory.com

 

[Java] 패키지(Package)의 개념

자바, 프로그래밍 이론, 알고리즘, 자료 구조, 웹, 네트워크, 자바스크립트

muckycode.blogspot.com

 

[Live Study] 7주차 과제: 패키지

이 스터디는 백기선님께서 Github와 유튜브로 진행하시는 스터디 입니다.

blog.baesangwoo.dev

 

7주차 과제: 패키지

목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 접근제어자 클래스패스 CLASSPATH 환경변수 -classpath 옵션 마감일시 2021년 1월 2일 토요일 오후 1시까지. 패키지 p

kils-log-of-develop.tistory.com

 

 

728x90

BELATED ARTICLES

more