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

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