四種訪問的修飾符分別是 (private 預設 protected public) 此排序按照訪問許可權的大小(由小到大) 測試1:本類中進行 show1 privateshow2 預設show3 protectedshow4 public 結果表明:在本類中,四種修飾符修飾的方法都可訪問。 測試2: ...
四種訪問的修飾符分別是 (private 預設 protected public) 此排序按照訪問許可權的大小(由小到大)
測試1:本類中進行
package Demo1;
public class Test {
private void show1(){
System.out.println("show1 private");
}
void show2(){
System.out.println("show2 預設");
}
protected void show3(){
System.out.println("show3 protected");
}
public void show4(){
System.out.println("show4 public");
}
public static void main(String[] args) {
Test test = new Test();
test.show1();
test.show2();
test.show3();
test.show4();
}
}
輸出結果
show1 private
show2 預設
show3 protected
show4 public
結果表明:在本類中,四種修飾符修飾的方法都可訪問。
測試2:同包下的類中
package Demo1;
public class Test2 {
public static void main(String[] args) {
Test test = new Test();
test.show1();
test.show2();
test.show3();
test.show4();
}
}
錯誤 : java: show1() 在 Demo1.Test 中是 private 訪問控制
將test.show1();註釋掉
package Demo1;
public class Test2 {
public static void main(String[] args) {
Test test = new Test();
// test.show1();
test.show2();
test.show3();
test.show4();
}
}
結果
show2 預設
show3 protected
show4 public
在子類中
package Demo1;
public class Son extends Test {
public static void main(String[] args) {
Test test = new Test();
// test.show1();
test.show2();
test.show3();
test.show4();
}
}
與test1一樣的執行結果
結果表明:同包下的類,除了用private修飾的無法調用,其餘的都可調用。
測試3:不同包下的類
package Demo2;
import Demo1.Test;
public class Son extends Test {
public static void main(String[] args) {
Test test = new Test(); //不同包下的其他類
// test.show1();
// test.show2();
// test.show3();
test.show4();
System.out.println("-----------");
Son son = new Son(); //不同包下的子類
// son.show1();
// son.show2();
son.show3();
son.show4();
}
}
結果
show4 public
-----------
show3 protected
show4 public
結果表明:不同包下的子類可調用(protected,public),不同包下的其他類只能調用(public)
總結:
1.private:強調在本類中自己使用;
2.預設:強調在同包下的類中使用;
3.protected:強調給子類使用;
4.public:強調大家都可以用;