Java四種訪問(wèn)控制修飾符知識(shí)點(diǎn)總結(jié)
java有四種訪問(wèn)控制修飾符。
- public
- protected
- private
- default(默認(rèn)為空,不加任何修飾)

為了用代碼對(duì)比出其中的區(qū)別,首先建立兩個(gè)包,分別為area1和area2;五個(gè)類(lèi),分別是Person、PersonDemo、PersonSon、PersonTest、OutPerson。
然后Person、PersonDemo、PersonSon放在area1包下。
PersonTest、OutPerson放在area2包下。
四個(gè)訪問(wèn)控制修飾符在同類(lèi)下的代碼例子:
package area1;
public class Person {
public String _public="公共變量"; //定義一個(gè)公共變量
private String _private="私有變量"; //定義一個(gè)私有變量
protected String _protected="保護(hù)變量 "; //定義一個(gè)保護(hù)變量
String _default="默認(rèn)變量"; //使用默認(rèn)方法定義變量
public void _pub(){ //創(chuàng)建一個(gè)公共方法
System.out.println(_public);
}
private void _pri(){ // 創(chuàng)建一個(gè)私有方法
System.out.println(_private);
}
protected void _pro(){ //創(chuàng)建一個(gè)保護(hù)方法
System.out.println(_protected);
}
void _def(){ //創(chuàng)建默認(rèn)方法
System.out.println(_default);
}
public static void main(String[] args){
Person p=new Person(); //創(chuàng)建對(duì)象
p._pub(); //調(diào)用方法
p._pri();
p._pro();
p._def();
}
}
四個(gè)訪問(wèn)控制修飾符在同包不同類(lèi)(不含子類(lèi))下的代碼例子:
package area1;
public class PersonDemo {
public static void main(String[] args){
Person p=new Person(); //創(chuàng)建Person類(lèi)的對(duì)象
p._pub();
p._pri(); //報(bào)錯(cuò)
p._pro();
p._def();
}
}
四個(gè)訪問(wèn)控制修飾符在同包子類(lèi)下的代碼例子:
package area1;
public class PersonSon extends Person{ //子類(lèi)PersonSon繼承父類(lèi)Person
public static void main(String[] args){
PersonSon son=new PersonSon(); //子類(lèi)創(chuàng)建對(duì)象
son._pub();
son._pro();
son._def();
son._pri(); //報(bào)錯(cuò)
Person father=new Person(); //父類(lèi)創(chuàng)建對(duì)象
father._def();
father._pub();
father._def();
father._pri(); //報(bào)錯(cuò)
}
}
四個(gè)訪問(wèn)控制修飾符在同包不同類(lèi)(不含子類(lèi))下的代碼例子:
package area2;
import area1.Person; //引用area1包下的Person類(lèi)
public class PersonTest {
public static void main(String[] args){
Person p=new Person(); //Person類(lèi)創(chuàng)建對(duì)象
p._pub();
p._pro(); //報(bào)錯(cuò)
p._pri(); //報(bào)錯(cuò)
p._def(); //報(bào)錯(cuò)
}
}
四個(gè)訪問(wèn)控制修飾符在同包子類(lèi)下的代碼例子:
package area2;
import area1.Person; //引用area1包下的Person類(lèi)
public class OutPerson extends Person{ //子類(lèi)繼承父類(lèi)
public static void main(String[] args){
OutPerson out=new OutPerson(); //子類(lèi)創(chuàng)建對(duì)象
out._pub();
out._pro();
out._pri(); //報(bào)錯(cuò)
out._def(); //報(bào)錯(cuò)
}
}
注意:仔細(xì)與圖表對(duì)比!
相關(guān)文章
堆排序?qū)嵗?Java數(shù)組實(shí)現(xiàn))
下面小編就為大家分享一篇使用Java數(shù)組實(shí)現(xiàn)堆排序的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
spring?retry實(shí)現(xiàn)方法請(qǐng)求重試的使用步驟
這篇文章主要介紹了spring?retry實(shí)現(xiàn)方法請(qǐng)求重試及使用步驟,本文分步驟通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
關(guān)于fastjson的常見(jiàn)API詳解
這篇文章主要介紹了關(guān)于fastjson的常見(jiàn)API詳解,Fastjson是一個(gè)Java庫(kù),可用于將Java對(duì)象轉(zhuǎn)換為其JSON表示,它還可用于將JSON字符串轉(zhuǎn)換為等效的Java對(duì)象,Fastjson可以處理任意Java對(duì)象,包括您沒(méi)有源代碼的預(yù)先存在的對(duì)象,需要的朋友可以參考下2023-07-07
Springboot集成fastDFS配置過(guò)程解析
這篇文章主要介紹了Springboot集成fastDFS配置過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
mybatis 根據(jù)id批量刪除的實(shí)現(xiàn)操作
這篇文章主要介紹了mybatis 根據(jù)id批量刪除的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08
利用Java對(duì)PDF文件進(jìn)行電子簽章的實(shí)戰(zhàn)過(guò)程
隨著電子賬單、回單、通知、合同的流行,電子文檔的可信度變得非常重要,為防止非法篡改,確保文檔的權(quán)威性,我們可以對(duì)PDF進(jìn)行電子簽章,這篇文章主要給大家介紹了關(guān)于如何利用Java對(duì)PDF文件進(jìn)行電子簽章的相關(guān)資料,需要的朋友可以參考下2021-07-07
新手學(xué)習(xí)微服務(wù)SpringCloud項(xiàng)目架構(gòu)搭建方法
這篇文章主要介紹了新手學(xué)習(xí)微服務(wù)SpringCloud項(xiàng)目架構(gòu)搭建方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
Java多種方式實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模式
這篇文章主要介紹了Java多種方式實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07

