內(nèi)部類

成員內(nèi)部類

成員內(nèi)部類不能含有static的變量和方法浓体。因為成員內(nèi)部類需要先創(chuàng)建了外部類,才能創(chuàng)建它自己的;在成員內(nèi)部類要引用外部類對象時创橄,使用outer.this來表示外部類對象弟翘; 而需要創(chuàng)建內(nèi)部類對象虫腋,可以使用outer.inner obj = outerobj.new inner();一般情況下,不要將內(nèi)部類的訪問權(quán)限設(shè)置為public,除非真的存在外部類之外的合理引用:

Public class Outer{
   Private int age = 10;
   Private calss Inner{
        Private int age =20;
        Public void changeAge(){
             age = 30;

局部類

Public class Outer{
    Private int a =10;
    Public print(int c){
        Class Inner{
            Private int b =20;
            Public void print(){
                syso("a:"+a);//10
                syso("b:"+b);//20
                syso("c:"+c);//30
            }
        }
        New Inner().print();
    } 
}

局部類中不能使用this,super等關(guān)鍵字稀余。
局部類不得聲明訪問權(quán)限悦冀。
局部類不能喝外部類名稱相同。
局部內(nèi)部類也像別的類一樣進(jìn)行編譯睛琳,但只是作用域不同而已盒蟆,只在該方法或條件的作用域內(nèi)才能使用,退出這些作用域后無法引用的师骗。

靜態(tài)內(nèi)部類

靜態(tài)內(nèi)部類不能引用外部類中的非靜態(tài)成員历等,要引用外部的非靜態(tài)成員,就要先指向外部類的對象辟癌。
創(chuàng)建內(nèi)部類對象:

OuterClass.StaticInnerClass inter = new OuterClass.StaticInnerClass();

實際上使靜態(tài)內(nèi)部類成為了一個頂級類寒屯。
Static class只能用于內(nèi)部類,不能使用在外部類上黍少。
在以下場合可以使用靜態(tài)內(nèi)部類:
(1) 外部類需要使用內(nèi)部類寡夹,而內(nèi)部類無需使用外部類的資源
(2) 內(nèi)部類可以獨立外部類創(chuàng)建對象

public class Person{    
     //姓名    
     private String name;    
     //家庭    
     private Home home;    
     //構(gòu)造函數(shù)設(shè)置屬性值    
     public Person(String _name){    
          name = _name;    
     }    
     /* home、name的getter/setter方法省略 */    
   
     public static class Home{    
          //家庭地址    
          private String address;    
          //家庭電話    
          private String tel;    
   
          public Home(String _address,String _tel){    
            address = _address;    
            tel = _tel;    
          }    
          /* address厂置、tel的getter/setter方法省略 */    
     }    
}  
public static void main(String[] args) {    
    Home home = new Person.Home("上海", "021");  
    Person p1 = new Person("張三");    
    Person p2 = new Person("李四");    
    p1.setHome(home);    
    p2.setHome(home);    
}

這里創(chuàng)建一個home對象菩掏,p1和p2都使用這個home對象,p1和p2共享同一個home對象,并且獨立于p1昵济、p2智绸;如果使用成員內(nèi)部類:

public static void main(String[] args) {    
    Person p1 = new Person("張三");    
    Home home = p1.new Home("上海", "021");  
    p1.setHome(home);    
    Person p2 = new Person("李四");    
    p2.setHome(home);    
}   

這里p1和p2依然共享同一個home對象,但此時home對象和p1是同生共死的砸紊,如果p1對象消亡传于,那么p2就沒有
家了,這對p2來說實在不公平醉顽,而如果為p1和p2都創(chuàng)建一個Home對象沼溜,又浪費資源。所以在這個例子中游添,
使用靜態(tài)內(nèi)部類比普通內(nèi)部類要合適系草。

匿名類

常用于匿名實現(xiàn)類:

new Thred(new Runable(){
 run(){}
}).start();

使用嵌套類的好處

1通熄、 相關(guān)類的邏輯分組
2、 進(jìn)一步封裝private屬性找都,使得該屬性只能被內(nèi)部類訪問
3唇辨、 更好的閱讀性和維護(hù)性

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市能耻,隨后出現(xiàn)的幾起案子赏枚,更是在濱河造成了極大的恐慌,老刑警劉巖晓猛,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饿幅,死亡現(xiàn)場離奇詭異,居然都是意外死亡戒职,警方通過查閱死者的電腦和手機栗恩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洪燥,“玉大人磕秤,你說我怎么就攤上這事∨踉希” “怎么了市咆?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纫版。 經(jīng)常有香客問我床绪,道長,這世上最難降的妖魔是什么其弊? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任癞己,我火速辦了婚禮,結(jié)果婚禮上梭伐,老公的妹妹穿的比我還像新娘痹雅。我一直安慰自己,他們只是感情好糊识,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布绩社。 她就那樣靜靜地躺著,像睡著了一般赂苗。 火紅的嫁衣襯著肌膚如雪愉耙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天拌滋,我揣著相機與錄音朴沿,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛赌渣,可吹牛的內(nèi)容都是我干的魏铅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼坚芜,長吁一口氣:“原來是場噩夢啊……” “哼览芳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸿竖,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤沧竟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后千贯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屯仗,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡搞坝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年搔谴,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桩撮。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡敦第,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出店量,到底是詐尸還是另有隱情芜果,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布融师,位于F島的核電站右钾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏旱爆。R本人自食惡果不足惜舀射,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望怀伦。 院中可真熱鬧脆烟,春花似錦、人聲如沸房待。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桑孩。三九已至拜鹤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間流椒,已是汗流浹背敏簿。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留镣隶,地道東北人极谊。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓诡右,卻偏偏與公主長得像,于是被迫代替她去往敵國和親轻猖。 傳聞我的和親對象是個殘疾皇子帆吻,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容