JAVA

패키지와 접근지정자에 따른 컴파일 여부

zammanza 2013. 1. 30. 17:02

 


package comone; public class ModifyEx1{ public String data1; String data2; protected String data3; private String data4; }


ModifyEx1 이라는 클래스를 comone 디렉토리에 생성(컴파일)


 

 

 

 

 

 


package comone; public class ModifyEx2{ public void callClass(){ ModifyEx1 m = new ModifyEx1(); m.data1 = "data1"; m.data2 = "data2"; m.data3 = "data3"; m.data4 = "data4"; } }


위에 만든 클래스와 같은 위치(comone)에 ModifyEx2를 생성하고자 한다.

ModifyEx2를 컴파일 하려고 하면 다음과 같은 메세지가 뜬다.

 

 

private권한을 가진 변수로 접근이 불가능하기에 컴파일이 안됨.


 

 

 

 

 

 


package comtwo; import comone.ModifyEx1; public class ModifyEx3{ public void callClass(){ ModifyEx1 m = new ModifyEx1(); m.data1 = "data1"; m.data2 = "data2"; m.data3 = "data3"; m.data4 = "data4"; } }


이번엔 다른 디렉토리(comtwo)에 위치하는 ModifyEx3을 생성하고자 한다.

ModifyEx3을 컴파일 하려고 하면 다음과 같은 메세지가 뜬다.

 

다음과 같이 3개의 에러가 발생한다.

다른 디렉토리에 위치하기 때문에 fiendry, protected, private 의 3가지 접근지정자에 접근이 불가능하다.