訪問(wèn)控制中默認(rèn),public,private,protected區(qū)別?



(比如一個(gè)類中的protected成員對(duì)于“不同的包中的非子類”是不可見(jiàn)的。


說(shuō)明:1.任何public的內(nèi)容可以被從任何地方訪問(wèn)。 2.private的成員不能被該類外看到。 3.如果一個(gè)成員不含有一個(gè)明確的訪問(wèn)說(shuō)明,馬克-to-win,它只對(duì)同包可見(jiàn),不同包不可見(jiàn)。這是默認(rèn)訪問(wèn)。 4.protected是同包都可見(jiàn),且子類都可見(jiàn)。又不同包同時(shí)又不是子類,就不可見(jiàn)。
馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號(hào):73203。
以下就上表中的一些難于理解的知識(shí)點(diǎn)給出實(shí)例進(jìn)行分析:

2.1 以下例子說(shuō)明:1)子類可以訪問(wèn)protected 2)同一包中非子類(Test)可以訪問(wèn)protected。





例1.2.1

class AMark {
    protected int i;
    protected void printI() {
        System.out.println("i=" + i);
    }
}

class B extends AMark {
    public void printIInB() {
        System.out.println("in B i=" + i);//子類可以訪問(wèn)protected
    }
}

public class Test {
    public static void main(String[] args) {
        AMark a=new AMark();
        a.i=7;//protected是同一包中對(duì)非子類(Test)可見(jiàn),
        a.printI();
        B b = new B();
        b.i = 10;//protected是同一包中對(duì)非子類(Test)可見(jiàn),馬 克 -t o-w i n
        b.printI();
        b.printIInB();
    }
}

result is:
i=7
i=10
in B i=10