1. 패키지 정리
패키지에는 .java 파일을 만들 수 있다.
.java 파일에는 여러 개의 클래스를 선언 할 수 있는데 public 클래스는 .java파일 명으로 단 하나 만들 수 있다. (관례적으로 한 파일당 한 클래스이다.)
실행클래스는 꼭 public클래스에서 선언되어야 한다.
패캐지에는 여러 개의 .java파일이 존재 하는데 각 파일에는 public 클래스가 하나씩 존재한다 즉 파일 개수만 큼 존재한다. 같은 패키지에서는 클래스들을 서로 공유 할 수 있다. 한 클래스에서 다른 클래스를 사용하려면 클래스 변수를 선언해 객체를 생성하여 클래스, 클래스 내부의 함수를 사용할 수 있다. 이때는 public 키워드가 무시됨 그냥 class *{} 이렇게 선언된 클래스도 객체 생성 후 마음껏 사용할 수 있기 때문이다.
다른 패키지에 각각 클래스가 존재하는 상황: 한 패키지의 .java파일의 클래스에서 다른 패키지의 선언된 클래스를 사용할 시 import선언을 통해 패키지를 선언해 주어야 한다.
방법1) import 상위패키지.하위패키지.클래스;
방법2) import 상위패키지.하위패키지.*;
public선언된 클래스만 사용할 수 있다. 아무 선언도 안되잇는 클래스나 메소드는 default처리 되어 패키지 사이에서는 공유가 안되기 때문이다.
따라서 다른 패키지에 있는 클래스를 사용하는 것은 import로 패키지를 선언 한 후 다른 패키지의 public 클래스만 사용할 수 있다.
다른 패키지에 있는 매소드를 사용하는 것은 import로 매소드가 선언된 클래스의 패키지를 선언한 후 public 클래스 내에 public 매소드만 사용할 수 있다. Public 이 선언되지 않은 클래스에서 public 매소드는 사용 못한다 애초에 다른 패키지에서 defalut클래스는 접근하지 못하기 때문에 클래스 자체를 접근 못하기 때문이다.
2. import
- 같은 패키지에 속한다면 public, default는 자유롭게 import없이 사용가능하다.
- 다른 패키지에 속한다면 public의 경우 import해주면 사용 가능하나 default는 안된다.
같은 패키지라는게 상 하위 관계도 안됨 걍 완전 같은 하나에 패키지에 있는 클래스들만 import없이 사용하는것임.
<신경 쓸거>
다른 패키지에서 동일 이름의 클래스 A가 있는 경우 문제점
문제점 1) import하지 않고 한 클래스에서 A를 선언시 패키지1에서 가져올지 패키지2에서 가져올지 오류가 생긴다.
문제점 2) 두 패키지 모두 import한 경우에 A를 선언시 어떤 패키지에서 가져올지 몰라 컴파일 에러가 난다,.
해결 방법) 이런 경우는 그냥 import하지 않고 사용할 클래스의 풀네임을 그냥 작성해 생성자를 작성 한다.
'Java' 카테고리의 다른 글
8. 상속 (0) | 2022.02.06 |
---|---|
7. 클래스 탐구 (0) | 2022.01.20 |
5. 클래스 정리2 : final, 접근 제한자, (0) | 2022.01.20 |
4. 클래스 정리 1 : JVM 메모리 사용 영역, class 맴버 정리(Instance, static 맴버), overloading (0) | 2022.01.20 |
3. 배열을 활용한 문제 만들기 (0) | 2022.01.17 |