使用匿名內部類可以使**更加簡潔、緊湊,模組化程度更高。內部類能夠訪問外部內的一切成員變數和方法,包括私有的,而實現介面或繼承類做不到。
對於新手,總是在接受新的知識,大多時候不知道在什麼情況下使用,於是就查閱了一些資料。貼出來:
如果滿足下面的一些條件,使用匿名內部類是比較合適的:
1.只用到類的乙個例項。
2.類在定義後馬上用到。
3.類非常小(sun推薦是在4行**以下)
4.給類命名並不會導致你的**更容易被理解。
在使用匿名內部類時,要記住以下幾個原則:
1.匿名內部類不能有構造方法。
2.匿名內部類不能定義任何靜態成員、方法和類。
3.匿名內部類不能是public,protected,private,static。
4.只能建立匿名內部類的乙個例項。
乙個匿名內部類一定是在new的後面,用其隱含實現乙個介面或實現乙個類。
因匿名內部類為區域性內部類,所以區域性內部類的所有限制都對其生效。
匿名內部類的兩種實現方式:
1.繼承乙個類,重寫其方法; 2.
實現乙個介面(可以是多個),實現其方法
在這裡貼出乙個繼承類的例題:
test.function().method();題眼public class testanonymousinterclass
//在這個方法中構造了乙個匿名內部類
private void show()
};anonyinter.show();// 呼叫其方法
}}
**如下:
inte***ce inter
class test
};} }
public class innerclassdemo
}
內部類,匿名內部類
內部類 概念 自己想到的 內部類是一種可以直接訪問外部類的一類事物 內部類訪問外部類中的成員,包括私有。之所以可以訪問外部類的成員,是因為內部類持有了外部類的乙個引用,格式為 outer.this.x 外部類訪問內部類成員,需要宣告內部類的物件。其他類訪問內部類方法 當內部類處在成員變數的位置時,就...
內部類 匿名內部類
把類定義在其他類的內部,這個類就叫內部類。內部類分為 成員內部類 區域性內部類。內部類訪問特點 內部類可以直接訪問外部類的成員,包括私有。外部類訪問內部類的成員,必須建立物件。區域性內部類是定義在乙個方法或者乙個作用域裡面的類。public class outer 在區域性位置建立內部類物件,調內部...
內部類 匿名內部類
package org.lgy.study.innerclass public class anonymoustest public static void main string args public string getname public double getprice inte ce p...