Java中,權限修飾符的權限測試
阿新 • • 發佈:2018-02-21
註意 div pre package img string 需要 fat prot
=============================================================================
1、
1 /* 2 權限修飾符的權限測試: 3 4 權限修飾符 本類中 同一個包下的子類和無關類 不同包下的子類 不同包下的無關類 5 private Yes No No No 6 默認 Yes Yes No No7 protected Yes Yes Yes No 8 public Yes Yes Yes Yes 9 */ 10 11 package com.liuyi; 12 13 class Father { 14 private void show() { 15 System.out.println("show"); 16 } 17 18void show2() { 19 System.out.println("show2"); 20 } 21 22 protected void show3() { 23 System.out.println("show3"); 24 } 25 26 public void show4() { 27 System.out.println("show4"); 28 } 29 30 public static void main(String[] args) { 31Father f = new Father(); 32 f.show(); 33 f.show2(); 34 f.show3(); 35 f.show4(); 36 } 37 }
在本類中,測試結果為:
=============================================================================
2、
1 /* 2 權限修飾符的權限測試: 3 4 權限修飾符 本類中 同一個包下的子類和無關類 不同包下的子類 不同包下的無關類 5 private Yes No No No 6 默認 Yes Yes No No 7 protected Yes Yes Yes No 8 public Yes Yes Yes Yes 9 */ 10 11 package com.liuyi; 12 13 class Father { 14 private void show() { 15 System.out.println("show"); 16 } 17 18 void show2() { 19 System.out.println("show2"); 20 } 21 22 protected void show3() { 23 System.out.println("show3"); 24 } 25 26 public void show4() { 27 System.out.println("show4"); 28 } 29 }
1 package com.liuyi; 2 3 class Son extends Father { 4 public static void main(String[] args) { 5 Father f = new Father(); 6 //f.show(); 7 f.show2(); 8 f.show3(); 9 f.show4(); 10 System.out.println("--------------"); 11 12 Son s = new Son(); 13 //s.show(); 14 s.show2(); 15 s.show3(); 16 s.show4(); 17 } 18 }
在同一包下的子類中,測試結果為:(註意:在子類代碼中分別測試了父類和子類)
=============================================================================
3、
1 /* 2 權限修飾符的權限測試: 3 4 權限修飾符 本類中 同一個包下的子類和無關類 不同包下的子類 不同包下的無關類 5 private Yes No No No 6 默認 Yes Yes No No 7 protected Yes Yes Yes No 8 public Yes Yes Yes Yes 9 */ 10 11 package com.liuyi; 12 13 class Father { 14 private void show() { 15 System.out.println("show"); 16 } 17 18 void show2() { 19 System.out.println("show2"); 20 } 21 22 protected void show3() { 23 System.out.println("show3"); 24 } 25 26 public void show4() { 27 System.out.println("show4"); 28 } 29 }
1 package com.liuyi; 2 3 class Test { 4 public static void main(String[] args) { 5 Father f = new Father(); 6 //f.show(); 7 f.show2(); 8 f.show3(); 9 f.show4(); 10 } 11 }
在同一包下的無關類中,測試結果為:
=============================================================================
4、
1 /* 2 權限修飾符的權限測試: 3 4 權限修飾符 本類中 同一個包下的子類和無關類 不同包下的子類 不同包下的無關類 5 private Yes No No No 6 默認 Yes Yes No No 7 protected Yes Yes Yes No 8 public Yes Yes Yes Yes 9 */ 10 11 package com.liuyi; 12 13 public class Father { 14 private void show() { 15 System.out.println("show"); 16 } 17 18 void show2() { 19 System.out.println("show2"); 20 } 21 22 protected void show3() { 23 System.out.println("show3"); 24 } 25 26 public void show4() { 27 System.out.println("show4"); 28 } 29 }
1 package cn.qx; 2 3 import com.liuyi.Father; 4 5 public class Son2 extends Father { //Father在com.liuyi中不是公共的,無法從外部程序包中對其進行訪問,需要在class Father前面加public修飾。 6 public static void main(String[] args) { //為了簡便起見,以後所有的類的前面都加public修飾。 7 Father f = new Father(); 8 //f.show(); 9 //f.show2(); 10 //f.show3(); 11 f.show4(); 12 System.out.println("--------------"); 13 14 Son2 s = new Son2(); 15 //s.show(); 16 //s.show2(); 17 s.show3(); 18 s.show4(); 19 } 20 }
在不同包下的子類中,測試結果為:(註意:在子類代碼中分別測試了父類和子類)
=============================================================================
5、
1 /* 2 權限修飾符的權限測試: 3 4 權限修飾符 本類中 同一個包下的子類和無關類 不同包下的子類 不同包下的無關類 5 private Yes No No No 6 默認 Yes Yes No No 7 protected Yes Yes Yes No 8 public Yes Yes Yes Yes 9 */ 10 11 package com.liuyi; 12 13 public class Father { 14 private void show() { 15 System.out.println("show"); 16 } 17 18 void show2() { 19 System.out.println("show2"); 20 } 21 22 protected void show3() { 23 System.out.println("show3"); 24 } 25 26 public void show4() { 27 System.out.println("show4"); 28 } 29 }
1 package cn.qx; 2 3 import com.liuyi.Father; 4 5 class Test2 { 6 public static void main(String[] args) { 7 Father f = new Father(); 8 //f.show(); 9 //f.show2(); 10 //f.show3(); 11 f.show4(); 12 } 13 }
在不同包下的無關類中,測試結果為:
=============================================================================
Java中,權限修飾符的權限測試