일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Oralce
- 멀티쓰레드프로그래밍
- 시즌1
- Python
- java
- https
- Codewars
- 이것이리눅스다
- 중첩쿼리
- CentOS8
- 7kyu
- 오류
- VMware
- 서울복층에어비앤비
- 사용자변경
- 남산타워뷰
- JavaScript
- 파이썬
- Linux
- 자바기초스터디
- 이클립스
- monthPicker
- Eclipse
- class파일바로보기
- 서울에어비앤비
- 6kyu
- CentOS
- SQL
- 주민번호마스킹
- 8kyu
- Today
- Total
보통사람
[Study-7주차] 패키지 본문
-
목표
-
자바의 패키지에 대해 학습하세요.
-
-
학습할 것 (필수)
-
package 키워드
-
import 키워드
-
클래스 패스
-
CLASSPATH 환경변수
-
-classpath 옵션
-
접근 지시자
-
1. package문
-
클래스의 묶음 또는 물리적으로 하나의 디렉터리를 의미함
-
서로 관련된 있는 것을 묶어놓음으로써 효율적으로 관리할 수 있으며 클래스 풀네임(FQCN)의 고유성을 보장하기 위해서 사용함
-
FQCN(Fully Qualified Class Name) : 클래스가 속한 패키지명까지 모두 포함한 이름을 의미(패키지명.클래스명)
-
-
점(.)을 구분자로 하여 계층구조로 구성되어 있음
-
모든 클래스는 반드시 하나의 패키지에 속해야 함
-
패키지를 선언하지 않으면 자바에서 기본적으로 제공하는 이름 없는 패키지(unnamed package)로 속하게 됨
-
-
규칙
-
소문자를 원칙으로 함
-
소스코드에서 주석과 공백을 제외한 첫 번째 줄에 딱 한번 선언되어야 함
-
-
선언
package 패키지명;
package com.study.halle.week7;
2. import문
-
다른 패키지에 있는 클래스를 사용해야 할 때 패키지명을 생략하기 위해서 사용함
-
같은 패키지에 있는 클래스들은 import문을 선언하지 않아도 패키지명 생략 가능함
-
컴파일러에게 소스코드에 사용된 클래스의 패키지에 대한 정보를 제공해주는 역할을 함
-
컴파일시 컴파일러는 import문을 통해 알게 된 패키지를 모든 클래스명 앞에 붙여줌
-
규칙
-
package문 다음, 클래스 선언 이전에 위치해야 함
-
-
선언
import 패키지명.클래스명;
import 패키지명.*; // 해당 패키지에 속하는 모든 클래스를 사용하겠다는 의미
import com.study.halle.week6.Me;
import com.study.halle.week6.*; // week6 패키지에 해당하는 모든 클래스를 사용하겠다는 의미
-
모든 소스파일에는 묵시적으로 java.lang 패키지가 import 되어 있음
-
6주 차에서 배운 상속을 생각해보면 Object가 모든 클래스의 최상위이기 때문에 해당 클래스가 import 되는 게 당연함 -
내장 패키지(Built-in Package) : 자주 사용하는 패키지가 들어가 있음(java.lang, java.util 등등)
-
-
static import문
-
static 멤버 호출시 클래스명을 생략할 수 있음
-
선언
-
import static 패키지명.클래스명;
import static 패키지명.*;
import static java.lang.Math.*;
import static java.lang.Math.random;
package com.study.halle.week7;
import static java.lang.Math.*;
public class TestPackage {
public static void main(String[] args) {
// System.out.println("random = " + Math.random());
System.out.println("random = " + random()); // static import문을 사용시
}
}
3. 클래스패스
-
컴파일러나 JVM이 클래스의 위치를 찾을 때 사용하는 경로
-
지정해주지 않으면 기본적으로 현재 디렉터리가 클래스 패스로 지정됨
-
세미콜론(;)을 구분자로 하여 여러 개의 경로를 지정할 수 있음
- 지정하는 방법
-
클래스 패스 환경변수
-
시스템에서 어디서든 참조 할 수 있게 환경변수로 설정
-
-
-classpath 옵션
-
cmd에서 자바 컴파일 또는 실행시 명령어을 통해 임시로 지정 할 수 있음
-
-
명령어 -classpath 클래스패스 경로
명령어 -cp 클래스패스 경로
javac -classpath D:\java\jdk1.8.0_101 Test.java
4. 접근 지시자(Access Modifier)
-
외부로부터 접근 제한을 막기 위한 역할
-
데이터가 유효한 값을 유지하도록 하기 위해서 또는 접근할 필요가 없는 멤버들을 감추기 위해서 사용하며 이것을 캡슐화(Encapsulation)라고 함
-
-
클래스, 멤버 변수, 메서드, 생성자에 사용될 수 있음
-
접근 지시자가 없으면 default를 의미함
-
public > protected > (default) > private 순으로 범위가 좁아짐
※ 참조
Java의 정석
www.tcpschool.com/java/java_usingClass_package
'Study' 카테고리의 다른 글
[Study-9주차] 예외 처리 (0) | 2021.01.12 |
---|---|
[Study-8주차] 인터페이스 (0) | 2021.01.04 |
[Study-6주차] 상속 (0) | 2020.12.22 |
[Study-5주차] 클래스 (0) | 2020.12.13 |
[Study-4주차] 제어문 (0) | 2020.12.07 |