今天我們再來學(xué)習(xí)一下java語言的基本語法,這節(jié)我們講訪問控制和內(nèi)部類。
訪問控制這種語法在前面的學(xué)習(xí)中,已經(jīng)經(jīng)常見過了。像是public(公有的),private(私有的)。大家按照字面理解就能知道了,公有的就是誰都可以用,私有的就是只有自己的類內(nèi)部可以用。不過訪問控制一共有4個,public(公有的),protected(受保護的),default(默認的,就是沒有修飾符),private(私有的)。我們用一個圖表示他們的權(quán)限:

權(quán)限修飾符,可以修飾類,方法和屬性。而表達的意思與上表一致。有些注意的地方:類的權(quán)限不可以用private,你們想如果寫一個類是private,誰也不讓用寫它干嘛;抽象方法的權(quán)限不可以是private和default。因為抽象方法一定要子類來實現(xiàn)的,子類都不可以用,抽象方法當(dāng)然也沒有意義了。
內(nèi)部類是我們以前沒有提過的概念,就是在類中又寫了一個類。注意內(nèi)部類是可以使用private權(quán)限的,而且還可以是static的呢。內(nèi)部類可以正常調(diào)用其它類的方法,屬性。別人也正常調(diào)用它。它的使用用和普通的方法,屬性一致,我們就把它看做一個普通的方法就行了。不過它可是可以創(chuàng)建對象的哦。
本節(jié)課的例子下載
我們把測試內(nèi)部類的源碼給大家,不過有一個地方大家要注意。
public class TestInnerStatic {
/*只有聲明成static的內(nèi)部類,才可以是里面的成員聲明成static。否則錯誤
如果,聲明成static的類,不就是全局的了嗎?它就相當(dāng)放在外面了已經(jīng)不再是內(nèi)部類了,并且它的對象中將不包含指向外包類對象的指針,所以不能再引用外包類了*/
public static class InnerClass {
public static int classVar = 0;
public static void doSomething() {
System.out.println("TestInnerStatic.InnerClass.doSomething");
}
}
public static void main(String[] args) {
InnerClass.doSomething();
}
}