微型技术博客之匿名内部类
這學期選修了安卓手機平臺開發課程,開發使用的是java語言,所以在這個過程中我又鞏固了很多java的知識點,我記得在前年下半年的時候我學了java這門課程,但是后來有很長一段時間沒有寫java程序了,導致有很多語法什么之類的慢慢淡忘,現在借此機會,又慢慢的一點點的撿拾起來了。今天我的這篇微型技術博客探討的就是java里面的匿名內部類。
1.匿名內部類其實就是內部類的簡寫格式。
2..定義匿名內部類的前提:內部類必須是繼承一個抽象類或者實現接口。只要一個類是抽象的或是一個接口,那么其子類中的方??? 法都可以使用匿名內部類來實現
3.匿名內部類的格式:? new 父類或者接口(){定義子類的內容}
4.其實匿名內部類就是一個匿名子類對象
5.使用匿名內部類我們必須要繼承一個父類或者實現一個接口,當然也僅能只繼承一個父類或者實現一個接口。同時它也是沒有class關鍵字,這是因為匿名內部類是直接使用new來生成一個對象的引用。當然這個引用是隱式的。
6.注意點:
? ? ? 匿名內部類中是不能定義構造函數的。
????? 匿名內部類中不能存在任何的靜態成員變量和靜態方法。
????? 匿名內部類為局部內部類,所以局部內部類的所有限制同樣對匿名內部類生效。
????? 匿名內部類不能是抽象的,它必須要實現繼承的類或者實現的接口的所有抽象方法
1匿名內部類的實現
?
abstractclass Time{
? ? publicabstractvoid starttime();
}
?
publicclass Date{
? ? publicstaticvoid main(String[] args) {
? ? ? ? ?Time t =new Time(){
? ? ? ? ? ? publicvoid starttime() {
? ? ? ? ? ? ? ? System.out.println("the time used is:");
? ? ? ? ? ? }
? ? ? ? };
? ? ? ? t.starttime();
? ? }
}
?
在接口上使用匿名內部類
interface Time {
? ? publicvoid starttime();
}
publicclass Date{
? ? publicstaticvoid main(String[] args) {
? ? ? ? ?Time t =new Time(){
? ? ? ? ? ? publicvoid starttime() {
? ? ? ? ? ? ? ? System.out.println("the time used is:");
? ? ? ? ? ? }
? ? ? ? };
? ? ? ? t.starttime();
? ? }
}
?
?多線程實現匿名內部類
publicclass Sum{
? ? publicstaticvoid main(String[] args) {
? ? ? ? Thread s= new Thread() {
publicvoid count() {
? i=1;
?S=0;
? ? ? ? ? ? ? ? while(i<=100) {
? ? ? ? ? ? ? ? ?s=s+i;
? ? ? ? ? ? ? ? ?i++;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
}
System.out.print(s);
?
? ? ? ? };
? ? ? ? s.start();
? ? }
}
?
Runnable接口內部類實現
publicclass Sum{
? ? publicstaticvoid main(String[] args) {
? ? ? ? Runnabler = new Runnable(){
publicvoid count() {
?i=1;
?S=0;
? ? ? ? ? ? ? ? while(i<=100) {
? ? ? ? ? ? ? ? ?s=s+i;
? ? ? ? ? ? ? ? ?i++;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
}
System.out.print(s);
?
? ? ? ? };
? ? ? ? s.start();
publicclass TestAnonymousInterClass{ ?
? ? publicstaticvoid main(String args[]){ ?
? ? ? ? TestAnonymousInterClass test=new TestAnonymousInterClass(); ?
? ? ? ? test.show(); ?
? ? } ?
? ? //在這個方法中構造了一個匿名內部類 ?
? ? privatevoid show(){ ?
? ? ? ? Out anonyInter=new Out(){// 獲取匿名內部類實例 ?
? ? ? ? ? ? ??
? ? ? ? ? ? void show(){//重寫父類的方法 ?
? ? ? ? ? ? ? ? System.out.println("this is Anonymous InterClass showing."); ?
? ? ? ? ? ? } ?
? ? ? ? }; ?
? ? ? ? anonyInter.show();// 調用其方法 ?
? ? } ?
} ??
?
// 這是一個已經存在的類,匿名內部類通過重寫其方法,將會獲得另外的實現 ?
class Out{ ?
? ? void show(){ ?
? ? ? ? System.out.println("this is Out showing."); ?
? ? } ?
}?
總結
以上是生活随笔為你收集整理的微型技术博客之匿名内部类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态生成的chosen实现模糊查询
- 下一篇: 局域网DNS劫持