코드를 작성할 때 문제가 있습니다. 인터페이스 클래스가 패키지에 정의되어 있으며 다른 패키지는이를 구현해야합니다. 여기서, 인터페이스 격리 및 종속성 반전의 원리는 두 패키지의 종속성을 반전시키기 위해 채택됩니다. 그러나 우리는 여기서 문제가 발생했습니다. 구현 클래스는 공장 모델을 인스턴스화하기 위해 채택하므로 구현 클래스는 패킷 외에 노출되기를 원하지 않지만 구현 클래스도 공개 인터페이스를 구현해야합니다. 따라서 질문은 다음과 같습니다. 클래스가 기본 유형이고 멤버 함수가 공공 유형 인 경우 액세스 제한은 무엇입니까?
확인을 구현하십시오
1. 먼저 패키지에서 인터페이스 클래스를 정의합니다.
패키지 MyTest Public Interface ClassAccessTest {void getData (); charseqence getString ();}2. 구현 패키지에서 구현 클래스 및 공장을 정의합니다
패키지 classAccessTest import MyTest.ClassAccessTest ClassAccessTestimp 구현 classAccessTest {int ma = 0; classAccessTestimp (int a) {ma = a; } public void getData () {System.out.printlin ( "데이터는" + ma); } public charSequence getString () {return ( "데이터는" + ma); } 패키지 classAccessTest import MyTest.ClassAccessTest Public Class Factory {public static classAccessTest getAccessTest () {return new ClassAccessTestimp (10); }}3. 그런 다음 원래 패키지의 인터페이스를 사용하십시오.
패키지 MyTest import ClassCessTest.Factory // ClassAccessTest.classAccessTestimp Public Class TestMain {public static void main (String arg []) {factory.getAccessTest (). getString (); <스팬 스타일 = "White"> </span> // <스팬 스타일 = "Font-Family : arial, helvetica, sans-serif; "> classAccessTest test = </span> new <span style ="font-family : arial, helvetica, sans-serif; "> classAccessTestimp (10); </span>}} 4. 결과 :
TestMain 클래스에서, 비 인정되지 않은 부분은 정상적으로 실행될 수 있으며 주석은 부분이 오류를보고합니다. ClassAccessTestimp 미정의 결론은 Java의 클래스의 액세스 권한이 회원의 액세스 권한보다 작을 수 있다는 위의 내용에서 파생됩니다. 반전 및 패키지 캡슐화 요구 사항에 따라 요구 사항을 충족 할 수 있습니다.