Java四種訪問控制修飾符知識點總結
java有四種訪問控制修飾符。
- public
- protected
- private
- default(默認為空,不加任何修飾)

為了用代碼對比出其中的區(qū)別,首先建立兩個包,分別為area1和area2;五個類,分別是Person、PersonDemo、PersonSon、PersonTest、OutPerson。
然后Person、PersonDemo、PersonSon放在area1包下。
PersonTest、OutPerson放在area2包下。
四個訪問控制修飾符在同類下的代碼例子:
package area1;
public class Person {
public String _public="公共變量"; //定義一個公共變量
private String _private="私有變量"; //定義一個私有變量
protected String _protected="保護變量 "; //定義一個保護變量
String _default="默認變量"; //使用默認方法定義變量
public void _pub(){ //創(chuàng)建一個公共方法
System.out.println(_public);
}
private void _pri(){ // 創(chuàng)建一個私有方法
System.out.println(_private);
}
protected void _pro(){ //創(chuàng)建一個保護方法
System.out.println(_protected);
}
void _def(){ //創(chuàng)建默認方法
System.out.println(_default);
}
public static void main(String[] args){
Person p=new Person(); //創(chuàng)建對象
p._pub(); //調用方法
p._pri();
p._pro();
p._def();
}
}
四個訪問控制修飾符在同包不同類(不含子類)下的代碼例子:
package area1;
public class PersonDemo {
public static void main(String[] args){
Person p=new Person(); //創(chuàng)建Person類的對象
p._pub();
p._pri(); //報錯
p._pro();
p._def();
}
}
四個訪問控制修飾符在同包子類下的代碼例子:
package area1;
public class PersonSon extends Person{ //子類PersonSon繼承父類Person
public static void main(String[] args){
PersonSon son=new PersonSon(); //子類創(chuàng)建對象
son._pub();
son._pro();
son._def();
son._pri(); //報錯
Person father=new Person(); //父類創(chuàng)建對象
father._def();
father._pub();
father._def();
father._pri(); //報錯
}
}
四個訪問控制修飾符在同包不同類(不含子類)下的代碼例子:
package area2;
import area1.Person; //引用area1包下的Person類
public class PersonTest {
public static void main(String[] args){
Person p=new Person(); //Person類創(chuàng)建對象
p._pub();
p._pro(); //報錯
p._pri(); //報錯
p._def(); //報錯
}
}
四個訪問控制修飾符在同包子類下的代碼例子:
package area2;
import area1.Person; //引用area1包下的Person類
public class OutPerson extends Person{ //子類繼承父類
public static void main(String[] args){
OutPerson out=new OutPerson(); //子類創(chuàng)建對象
out._pub();
out._pro();
out._pri(); //報錯
out._def(); //報錯
}
}
注意:仔細與圖表對比!
相關文章
Java中ThreadLocal線程變量的實現(xiàn)原理
本文主要介紹了Java中ThreadLocal線程變量的實現(xiàn)原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06
java hasNextInt判斷是否為數(shù)字的方法
今天小編就為大家分享一篇java hasNextInt判斷是否為數(shù)字的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
簡單談談java的異常處理(Try Catch Finally)
在程序設計中,進行異常處理是非常關鍵和重要的一部分。一個程序的異常處理框架的好壞直接影響到整個項目的代碼質量以及后期維護成本和難度。2016-03-03
Java泛型枚舉Annotation接口詳細解讀與Eclipse發(fā)展
這篇文章主要給大家介紹了關于Java中方法使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-08-08
解決新版 Idea 中 SpringBoot 熱部署不生效的問題
這篇文章主要介紹了解決新版 Idea 中 SpringBoot 熱部署不生效的問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
Jenkins Pipeline為Kubernetes應用部署增加狀態(tài)檢測腳本優(yōu)化
這篇文章主要為大家介紹了Jenkins Pipeline為Kubernetes應用部署增加狀態(tài)檢測腳本優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12

