JAVA进阶开发之(内部类概述)
生活随笔
收集整理的這篇文章主要介紹了
JAVA进阶开发之(内部类概述)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
匿名內(nèi)部類(相當(dāng)于此類沒有名字):
1.什么是內(nèi)部類:在類的內(nèi)部又定義了一個(gè)新的類
2.內(nèi)部類的分類:
靜態(tài)內(nèi)部類:類似靜態(tài)變量
實(shí)例內(nèi)部類:類似實(shí)例變量
局部?jī)?nèi)部類:類似局部變量
3.使用內(nèi)部類編寫的代碼,可讀性很差,能不用盡量不用
4.匿名內(nèi)部類是局部?jī)?nèi)部類中的一種,因?yàn)檫@個(gè)類沒有名字而得名,叫匿名內(nèi)部類
5.不建議使用匿名內(nèi)部類:因?yàn)橐粋€(gè)類沒有名字,就意味著沒有辦法重復(fù)使用,另外代碼會(huì)太亂,可讀性就會(huì)很差
6.匿名內(nèi)部類的特征:new 接口名(){}? 后面的{} 代表了對(duì)接口的實(shí)現(xiàn)
?
代碼演示:
import java.util.Objects;/**/ class Test01{//靜態(tài)內(nèi)部類static class Inner1{}//實(shí)例內(nèi)部類class Inner2{}public void doSome(){//局部?jī)?nèi)部類class Inner3{}}public void doOther(){//外面的方法訪問不了上面的局部?jī)?nèi)部類,訪問實(shí)例內(nèi)部類的時(shí)候需要new[但是我們一般很少這樣去使用]new Test01().new Inner2();}//main方法的入口public static void main(String[] args){//調(diào)用Math中的mySum方法Math math=new Math();//這樣寫代碼,表示這個(gè)類名是有的,類名是ComputeImpl//math.mySum(new ComputeImpl() ,100,100);//使用匿名內(nèi)部類,這個(gè){}就代表對(duì)這個(gè)接口的實(shí)現(xiàn),表示這個(gè)ComputeImpl這個(gè)類沒名字了math.mySum(new Compute(){public int sum(int a,int b) {return a + b;}} ,100,100);} }//負(fù)責(zé)計(jì)算的接口 interface Compute{//抽象方法int sum(int a,int b); } /* //你會(huì)自動(dòng)在這里編寫一個(gè)Compute接口的實(shí)現(xiàn)類 class ComputeImpl implements Compute{public int sum(int a,int b){return a+b;} } *///數(shù)學(xué)類 class Math{//數(shù)學(xué)求和的方法public void mySum(Compute compute,int x,int y){int retValue=compute.sum(x,y);System.out.println(x+"x"+y+"y"+"="+retValue);} }?
總結(jié)
以上是生活随笔為你收集整理的JAVA进阶开发之(内部类概述)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android自动回复退订,Androi
- 下一篇: 串口助手驱动_STM32Cube22(补