728x90
✨ 이 글은 [ 코드프레소 Java 웹 개발 체험단 활동 ] 내용입니다 ✨
💜 코드프레소 이러닝 강의 수강 중 - Java 프로그래밍 초급 💜
😎 아래의 링크를 통해 프리미엄 IT 교육 서비스, 코드프레소를 확인해보세요 😎
패키지(package)
- 관련 있는 클래스를 한군데 묶어 놓은 그룹
- 클래스를 구분하는 일종의 디렉토리
- 패키지는 하위 계층 구조를 가질 수 있다
패키지명의 작성
- 패키지명은 소문자로만 작성하며, 클래스들의 묶음을 표현하는 의미있는 이름으로 작성한다
- 패키지는 계층 구조를 갖는다
- 일반적으로 '1차도메임.회사명.'으로 시작된다
- 이는 꼭 지켜야 할 규칙은 아니고 대부분 이런 식으로 프로젝트 명을 짓는다 (권장 사항)
- com.회사명.프로젝트명.모듈명.서브모듈명
- org.회사명(-조직명).프로젝트명.모듈명.서브모듈명
- ex) com.coderpesso.newtube.user
- 패키지의 이름과 구조는 실제 OS의 디렉토리 구조와 매핑된다
- 패키지를 생성하면 실제 디렉토리도 새로 생성된다
- 패키지명은 계층 구조의 전체 이름을 모두 포함한다
- 하위 계층 구조는 점(.)을 통해 구분이 가능하다
FQCN(Fully Qualified Class Name)
- 클래스의 FQCN은 패키지 명을 모두 포함한다
- 패키지명 + 클래스명
패키지와 클래스
- 모든 클래스는 반드시 하나 이상의 패키지에 속한다
- 클래스 생성 시 패키지를 선언하지 않으면, 이름 없는 패키지 (unnamed package)에 포함된다
- 패키지를 선언하지 않은 모든 클래스는 모두 동일한 패키지에 속한다 -> unnamed package
패키지의 선언
- 해당 클래스가 어떤 패키지에 속하여 있다고 명시하는 것이다
- package 키워드를 통해 패키지명을 선언할 수 있다
- 패키지 선언문은 .java 파일의 가장 첫 번째 라인에 작성한다
- 모든 클래스에 단 한번만 패키지를 선언할 수 있다
- IDE를 통해 패키지를 선언할 수 있다 - 자바 클래스를 생성하면 자동으로 선언이 된다!
다른 패키지의 클래스 사용하기 - import
- 다른 패키지에 속한 클래스를 사용할 때에는 클래스의 FQCN을 사용해야 한다
- FQCN의 반복을 피하려면 import 문을 선언한다
- 사용하고자 하는 클래스의 FQCN을 명시한다
- 특정 패키지 내의 모든 클래스를 사용하는 경우가 있다
- 이럴 때에는 FQCN 대신 '패키지명.*'으로 특정 패키지 내의 모든 클래스를 사용할 수 있다
default 접근 제어자
- 접근 제어자를 명시하지 않으면 default 접근 제어자가 적용된다
- 같은 패키지 내에서는 접근이 가능하지만, 다른 패키지에서는 접근 불가능하다
- default 접근 제어자는 상속 관계라도 다른 패키지인 경우 접근이 불가능하다
protected 접근 제어자
- 같은 패키지 간에는 멤버 접근이 가능하다
- protected 접근 제어자는 모든 자식 클래스에서의 접근을 가능하게 한다
- 상속 관계에서 부모 클래스의 패키지가 달라도 자식 클래스에서 부모 클래스의 멤버에 접근이 가능하다
💡 Point!
- 패키지는 관련 있는 클래스를 한 데 묶어 놓은 그룹이다
- 파일 시스템의 디렉토리와 유사하며 실제로 디렉토리에 매핑된다
- 패키지 단위로 접근 제어가 가능하다 -> default, protected
- 다른 패키지의 클래스를 활용할 때 FQCN을 사용해야 하며, import로 사용할 클래스를 명시할 수 있다!
728x90
'코드프레소 체험단 > Java 프로그래밍' 카테고리의 다른 글
[Java 프로그래밍 초급] 컬렉션 프레임워크 (0) | 2022.06.08 |
---|---|
[Java 프로그래밍 초급] Map 자료구조 컬렉션 클래스 (0) | 2022.01.27 |
[Java 프로그래밍 초급] 객체지향 고급 (2) (0) | 2022.01.21 |
[Java 프로그래밍 초급] 컬렉션 프레임워크의 개념 (0) | 2022.01.20 |
[Java 프로그래밍 초급] 객체지향 고급 (1) (0) | 2022.01.20 |
댓글