Java에는 4 개의 액세스 제어 수정자가 있습니다.
차이점을 코드와 비교하기 위해 먼저 두 개의 패키지 인 Area1 및 Area2를 만듭니다. 5 개의 수업은 사람, 인력, 사람, 개인 테스트 및 외부입니다.
그런 다음 Persondemo, Personson을 지역에 두십시오 1.
개인 테스트 및 외부는 Area2 패키지 아래에 배치됩니다.
동일한 범주의 4 개의 액세스 제어 수정 자의 예 :
패키지 영역 1; 공개 클래스 사람 {public string _public = "Public Variable"; // 공용 변수 정의 개인 문자열 _private = "private variable"; // 비공개 변수 보호 문자열 정의 _protected = "Protected Variable"; // 보호 된 변수 정의 문자열 _default = "default"; // 가변 공개 void 정의 _pub () {// public method system.out.println (_public)을 만듭니다. } private void _pri () {// 개인 메소드를 만듭니다. } protected void _pro () {// 보호 메소드 System.out.println (_protected)을 만듭니다. } void _def () {// 기본 메소드 System.out.println (_default)을 만듭니다. } public static void main (String [] args) {person p = new Person (); // 객체 생성 p._pub (); // 메소드 p._pri ()를 달성합니다. p._pro (); p._def (); }}동일한 패키지에서 다른 클래스 (서브 클래스 제외)에서 4 개의 액세스 제어 수정 자의 코드의 예 :
패키지 영역 1; 공개 클래스 Persondemo {public static void main (String [] args) {person p = new person (); // 사람의 객체를 작성하십시오 클래스 P._PUB (); p._pri (); // 오류를보고 p._pro (); p._def (); }}동일한 BUN 서브 클래스에서 4 개의 액세스 제어 수정 자의 코드의 예 :
패키지 영역 1; 공공 계급 사람 확장 사람 {// 서브 클래스 사람은 부모 계급 사람을 상속받습니다. // 서브 클래스는 객체 son._pub ()을 생성합니다. 아들 ._pro (); 아들 ._def (); 아들 ._pri (); //보고 오류 사람 아버지 = 새로운 사람 (); // 클래스를 준비합니다. 아버지 ._pub (); 아버지 ._def (); 아버지 ._pri (); //보고 오류}}동일한 패키지에서 다른 클래스 (서브 클래스 제외)에서 4 개의 액세스 제어 수정 자의 코드의 예 :
패키지 지역 2; import area1.person; // 개인 클래스 공개 클래스 개인 테스트 {public static void main (String [] args) {person p = new person (); // Person Class를 생성 한 객체 p._pub (); p._pro (); //보고 오류 P._PRI (); //보고 오류 P._DEF (); //보고 오류}}동일한 BUN 서브 클래스에서 4 개의 액세스 제어 수정 자의 코드의 예 :
패키지 지역 2; import area1.person; // Area1 Package에서 개인 클래스를 참조하십시오. 공개 클래스 외부인은 사람을 연장합니다. // 서브 클래스는 객체를 생성합니다 ._pub (); out._pro (); out._pri (); // 오류를보고합니다 ._def (); // 오류보고}}
참고 : 차트와 신중하게 비교하십시오!