################ 패키지 ################
규모가 큰 자바 프로그램을 작성하다 보면 클래스와 인터페이스가 많아진다. 이를 효율적으로 분류하고 관리하기 위하여 연관성 있는 클래스와 인터페이스를 모아둔 것이 바로 패키지.
<예시>
package iotest; 클래스와 인터페이스를 분류별로 모아 관리하는 iotest라는 패키지를 만든다
class StuInfo{
...
}
패키지를 통해 이름의 중복을 해결
'배우고 익히고 잊어버려라'
패키지는 일종의 디렉토리 개념
클래스를 로드한다는 것은 같은 패키지안에 있는 클래스만 가능해서 이때는 import를 활용해서 다른 패키지에 속한 클래스를 불러올 수 있음.
<예시>
import java.io.*; java.io 패키지의 모든 클래스를 여기서도 사용한다. *는 '모든' (와일드카드)
class StuInfo{
...
}
############### 손 컴파일 ##################
개발도구 없이 코딩하는 경우는 거의 없지만, 언젠가는 알고 있어야 하는 부분.
############### 로드된 패키지 파일들의 중복의 회피 ##################
################ 접근 제어자(접근 제한자) ################
어떤 클래스를 다른 패키지의 클래스가 상속하지 못하게 하는 등 경우에 따라 클래스나 인터페이스를 사용하는 것을 제한할 필요가 있다.
접근 제어자(제한자): public, protected, private (외부;다른 클래스 의 접근을 제한함)
public: 어디서든 접근 가능(다른 패키지의 클래스도 접근가능)
protected: 같은 패키지 내부에서만 접근 가능. 상속 관계에 있다면 서로 다른 패키지에 있는 클래스의 접근도 허용한다.
default : 접근 제어 지시자가 없는 경우, 접근 제어자가 없는 메소드는 같은 패키지에 있고 상속 관계에 있는 메소드에 대해서만 접근을 허용
private: 외부면 어디서든 접근 불가. 같은 클래스 내부에서만 사용이 가능. nested class(클래스 안에 클래스가 정의된 경우에만 만들수있음)
접근 제어자를 사용하는 이유 : 사용자가 접근하면 안되거나 접근 할 필요가 없는 맴버에 대한 접근을 규제할 수 있게 되었다. 어떤 맴버에 대한 접근을 허용할 것인가를 작업자의 판단에 달렸다.
하나의 소스 코드에는 하나의 public 클래스가 존재 할 수 있다는 의미
public 접근 제어자 사용시 주의할 점
- 소스 코드 파일명과 public이 붙은 클래스명은 동일해야 한다.
- main 함수는 public이 붙은 클래스 안에 위치해야 한다.
'Java' 카테고리의 다른 글
여러가지 수식자(final, static, abstract) (0) | 2019.06.07 |
---|---|
abstract (0) | 2019.06.07 |
API와 API 문서 보는 법 (0) | 2019.06.06 |
클래스 패스 (0) | 2019.05.29 |
오버라이딩(Overriding) 과 오버로딩(Overloading) (0) | 2019.05.23 |