訪問(wèn)權(quán)限修飾詞(access specifier),控制其他的類(lèi)訪問(wèn)本類(lèi)成員的級(jí)別,先看下面的例子:
PrivateTest.java
class A{
?private int i=1;
?int s=0;
?private void print(){
??System.out.println(i);
?}
}

public class PrivateTest{
?public static void main(String[] args){
??A a=new A();
??//System.out.println(a.i);
??System.out.println(a.s);
??//a.print();
?}
}

從輸出結(jié)果可以看到,System.out.println(a.i);不能通過(guò)編譯,如果print設(shè)置為public的話a.print();可以通過(guò)編譯并且輸出正確的結(jié)果。也就是說(shuō)在A類(lèi)中看不到B類(lèi)的private變量的,但是A引用B類(lèi)的public成員函數(shù),而這個(gè)函數(shù)用到了B中的private變量是沒(méi)有問(wèn)題的。

如果,對(duì)于繼承自己的class,認(rèn)為是自己的子女,而對(duì)于和自己一個(gè)目錄下的classes,認(rèn)為是自己的朋友,那么
1、public:表明該數(shù)據(jù)成員、成員函數(shù)是對(duì)所有人開(kāi)放的,所有人都可以直接進(jìn)行調(diào)用;
2、private:表示私有,私有的意思就是除了自己之外,任何人都不可以直接使用;
3、protected:protected對(duì)于子女、朋友來(lái)說(shuō),就是public的,可以自由使用,沒(méi)有任何限制,而對(duì)于其他的外部class,protected就變成private;
4、類(lèi)本身只能是public或者默認(rèn)的,不能是private和protected的;
5、這里說(shuō)的直接使用是指可以在其他類(lèi)中使用本類(lèi)的對(duì)象進(jìn)行調(diào)用(成員數(shù)據(jù)和成員函數(shù))。

作用域?????????? 當(dāng)前類(lèi)?????? 同一package???? 子孫類(lèi)??????? 其他package
public?????????????√????????????? √????????????????√???????????? ? √
protected????????√????????????? √????????????????√??????????????×
friendly?????????? √????????????? √????????????????×???????????????× (默認(rèn)為friendly,沒(méi)有這個(gè)修飾詞)
private????????????√????????????? ×????????????????×???????????????×