java的類中,這3個(gè)關(guān)鍵詞的用法有所區(qū)別,先看一個(gè)表格:
private
大多數(shù)成員變量都是修飾符為private的,它們不希望被其他任何外部的類訪問。只能被類內(nèi)部的成員函數(shù)訪問。
default
它是針對(duì)本包訪問而設(shè)計(jì)的,任何處于本包下的類、接口、異常等,都可以相互訪問,即使是父類沒有用protected修飾的成員也可以。
protected
主要的作用就是用來保護(hù)子類的。它的含義在于子類可以用它修飾的成員,其他的不可以,它相當(dāng)于傳遞給子類的一種繼承的東西
public
這個(gè)就不用說了,任何地方都可以訪問
下面上代碼說明。
src下面packageone文件夾,Alpha.java
package packageone;
public class Alpha {
public void test() //通過定義public成員函數(shù)來讓實(shí)例訪問不能直接對(duì)外
{
this.pub();
this.pro();
this.def();
this.pri();
}
public void pub() //定義public成員函數(shù)
{
System.out.println( "public");
}
protected void pro() //定義protected成員函數(shù)
{
System.out.println( "protected");
}
void def() //定義default成員函數(shù)
{
System.out.println( "default");
}
private void pri() //定義private成員函數(shù)
{
System.out.println( "private");
}
}
src下面packageone文件夾,Beta.java
package packageone;
public class Beta {
public void test()
{
Alpha alpha = new Alpha();
alpha.pub();
alpha.pro();
alpha.def();
// alpha.pri(); //錯(cuò)誤,不能訪問
}
}
src下面packagetwo文件夾,AlphaSub.java
package packagetwo;
import packageone.Alpha;
public class AlphaSub extends Alpha {
public void test()
{
super.pub();
super.pro();
// super.def(); //錯(cuò)誤,不能范文
// super.pri(); //錯(cuò)誤,不能范文
}
}
src下面packagetwo文件夾,Gamma.java
package packagetwo;
import packageone.Alpha;
public class Gamma {
public void test()
{
Alpha alpha = new Alpha();
alpha.pub();
// alpha.pro(); //錯(cuò)誤,不能訪問
// alpha.def(); //錯(cuò)誤,不能訪問
// alpha.pri(); //錯(cuò)誤,不能訪問
}
}
主函數(shù)Test.java
import packageone.Alpha;
public class Test {
public static void main(String[] args)
{
new Alpha().test();
}
}
對(duì)比總結(jié):
- private只能在類部被訪問;public全局可訪問;
- protected和default的區(qū)別在于default只能在當(dāng)前包內(nèi)被訪問;
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
