개발/Spring

패키지와 접근 제어

728x90

자바 애플리케이션을 개발할 때 클래스들을 분류하지 않으면 이름이 중복되거나, 어떤 클래스가 어떤 일을 하는지 혼동되는일이 발생한다.

그래서 패키지가 존재한다.

 

패키지 이름은 모두 소문자로 지정, 약속이 되어 있고 99.9프로 자바 개발자들이 소문자로 선언하여 사용하고 있음 

자바의 예약어를 절대 사용하면 안된다.

 

import를 이용하여 다른 패키지에 접근하기

 

JDK5 부터는 import static이라는 것이 추가되었다. 이 import static은 static한 변수와 static 메소들를 사용하고자 할 때 용이하다.

 

만약 Package 클래스에 import한 동일한 이름의 static 변수나, static메소드가 자신의 클래스에 있으면, 

 

자신의 클래스에 있는 static 변수나 메소드가 import static으로 가져온 것보다 우선이다.

 

 

 

자바의 접근 제어자

 

자바의 접근 제어자는 4개가 이싿. 이 접근 제어자는 클래스 ,메소드, 인스턴스, 클래스 변수를 선언할 때 사용한다.

 

 

public 

누구나 접근 가능함 (해당 클래스, 같은 패키지, 상속받은 클래스 import한 클래스 모두 가능)

 

protected

같은 패키지에 있거나 상속받은 경우에만 사용 가능함 (import한 클래스에서 x)

 

package-private

아무런 접근 제어자를 적어주지 않을 때, 같은 패키지 내에 있을 때만 접근 가능함

 

private

해당 클래스 내에서만 접근 가능함

 

 

클래스 접근 제어자 선언할 때 유의점

 

이 접근 권한은 인스턴스 변수와 클래스 변수에도 동일하게 적용하면 된다.

이 외에 접근 제어자를 사용할 수 있는 곳은 바로 클래스 선언문이다.

클래스를 선언할 때에는 반드시 파일 이름에 해당하는 클래스가 반드시 존재해야만 한다고 했다.

 

 

 

class PublicClass{

 

class PublicsecondClass{

}

 

둘다 package-private으로 선언됭 ㅓ있다.

 

가능함

 

public class PublicClass {

}

class PublicSecondClass{

 

가능함.  클래스 파일에 해당하는 클래스만 public이기 때문에 문제 없음

 

public class PublicClass{

}

 

public class PublicSecondClass{

}

 

이렇게 선언하면 에러 발생한다.

 

pulbic으로 선언된 클래스가 소스 내에 있다면 반드시 클래스 이름과,  소스파일 이름이 같아야 한다.

 

하나의 소스파일에 여러 개의 클래스를 선언하는 것은 좋지 않ㄷ.

 

 

'개발 > Spring' 카테고리의 다른 글

자바 Object 클래스  (0) 2021.04.06
자바 상속  (0) 2021.04.06
Serializable, NIO  (0) 2021.04.05
자바 참조 자료형  (0) 2021.04.05
자바 배열  (0) 2021.04.05