경주장
7주차 과제: 패키지 #7 package,import 키워드 (~02.30) 본문
✔️ 학습할 것 (필수)
+ 패키지란?
package 키워드import 키워드- 클래스패스
- CLASSPATH 환경변수
- -classpath 옵션
- 접근지시자
package 키워드는 클래스와 인터패이스의 첫 줄에 패키지를 선언하기 위해 사용됩니다.
package 상위패키지.하위패키지;
public class ClassName { ... }
public 접근 제어자를 가진 패키지의 멤버(클래스, 인터페이스)를 패키지의 외부에서 사용하기 위해서는 아래의 3가지중 한가지를 해야합니다.
- Member를 FQN - Fully Qulified Name 으로 참조하기
- package의 Member를 import하기
- package 전체를 import하기
Referring to a Package Member by Its Qualified Name
Import 문을 활용하면 Class혹은 Interface의 이름만으로 참조할 수 있기 때문에 잘 활용되지 않습니다.
하지만 패키지 멤버의 이름이 겹치는 경우에는 활용이 필요합니다.
Importing a Package Member
가장 널리 활용되는 방식입니다. graphics 패키지의 Rectangle 클래스를 아래와 같이 import하여 클래스 이름으로 바로 사용할 수 있습니다.
import graphics.Rectangle;
Rectangle myRectangle = new Rectangle();
Importing an Entire Package
package member를 import하는 방식에서 PackageMember의 이름을 쓰는 칸에 asterisk (*) wildcard를 쓰게 되면 해당 패키지의 모든 멤버를 import 할 수 있습니다.
asterisk (*) wildcard를 사용하는 방식에서 주의할 점은 이 방식은 정확히 해당 패키지의 모든 멤버를 import한다는 점입니다. 즉 하위에 패키지가 있다고 해서 import를 하지 않습니다.
특별한 import로써 public Nested Class의 import와 static import가 있습니다.
Nested Class가 public으로 선언된 경우 위의 2번째 3번째 import와 같은 구분으로 임포트 할 수 있습니다.
import graphics.Rectangle;
import graphics.Rectangle.Square;
import graphics.Rectangle.*;
Static Import를 활용하면 class의 static 필드, 메소드를 접근할때 클래스 명을 작성하지 않아도 됩니다.
예를 들어 java.lang.Math의 PI 상수를 활용하는 두가지 방식은 아래와 같습니다.
import java.lang.Math;
...
double myPi = Math.PI;
import static java.lang.Math.PI;
...
double myPi = PI;
static import는 잘 사용한다면 반복을 줄이고 코드 가독성을 높이지만 남용하게 되면 코드의 가독성과 유지보수성을 망칩니다.
'JAVA > whiteship_live-study' 카테고리의 다른 글
8주차 과제: 인터페이스 #8 (~03.04) (0) | 2022.02.25 |
---|---|
7주차 과제: 패키지 #7 클래스패스 (~02.30) (0) | 2022.02.25 |
7주차 과제: 패키지 #7 패키지란 (~02.30) (0) | 2022.02.23 |
6주차 과제: 상속 #6 (~02.29) - Object 클래스 (0) | 2022.02.23 |
6주차 과제: 상속 #6 (~02.29) - 추상 클래스 (0) | 2022.02.23 |