一 內部類 html
什麼就作內部類? 就是在一個類的內部還存在另一個類,此類即稱爲內部類. this
一、好比咱們定義一個外部類Outer,在Outer類中要定義了一個Inner類,則Inner類稱做爲內部類} spa
首先咱們先看一段使用內部類的看一段程序 .net
以上的程序中,Inner類做爲Outer類的內部類存在的,並在外部類的fun()方法中直接實例化內部類的對象並調用print()方法 htm
從內存圖上看: 對象
內部類存在的特色: 內存
-----缺點:正常的一個類操做時,在類中最好只定義屬性和方法,若是定義一個類,則會破壞一個程序的結構,程序可讀性很差 get
----優勢:經過下面的代碼發現其優勢,要完成第一個代碼功能,咱們將以上的外部類和內部類分開看下代碼,代碼以下: class
若是將內部類拿到外部來,會發現代碼增長,並且複雜度也增長了。使用內部類最大的優勢就是:能夠很方便的訪問外部類中的私有屬性。 變量
二:使用static聲明內部類
使用static能夠聲明一個內部類,聲明的內部類就稱做爲外部類,能夠直接在類的外部調用,可是若是想要訪問外部類的私有屬性,則此屬性必須是static訪問權限的。
三:在外部訪問內部類
一個內部類除了能夠經過外部類訪問,也能夠直接在其餘類中調用,調用的格式爲:
------->外部類.內部類 內部類對象 = 外部類實例.new 內部類();
四:在方法中定義內部類:
一個內部類能夠在任何位置上定義,下面看下在方法中定義的一個內部類
二:匿名內部類
若是此時B類只使用一次的話,那麼有必要定義一個類嗎?此時能夠用匿名內部類解決這個問題!
若是從底層更瞭解匿名內部類能夠看下面一片連接的文章:
http://topic.csdn.net/u/20080728/20/d60f719a-c103-44b8-8d0c-bc1c818b768a.html