Java局部?jī)?nèi)部類和匿名內(nèi)部類定義與用法實(shí)例分析
本文實(shí)例講述了Java局部?jī)?nèi)部類和匿名內(nèi)部類。分享給大家供大家參考,具體如下:
一 局部?jī)?nèi)部類
1 點(diǎn)睛
內(nèi)部類不僅可以在類中定義,也可以定義在方法體或作用域內(nèi)。這樣的內(nèi)部類作用范圍僅限于方法體或特定的作用域內(nèi),因此也稱為局部?jī)?nèi)部類。
2 代碼
class InnerClassTest { int score = 95; void inst() { class Inner { void display() { System.out.println("成績(jī): score = " + score); } } Inner in = new Inner(); in.display(); } } public class ObjectInnerClass { public static void main(String[] args) { InnerClassTest outer = new InnerClassTest(); outer.inst(); } }
3 運(yùn)行
成績(jī): score = 95
二 匿名內(nèi)部類
1 點(diǎn)睛
使用匿名內(nèi)部類,必須要繼承一個(gè)父類或?qū)崿F(xiàn)一個(gè)接口。需要注意的是:匿名內(nèi)部類是沒有class關(guān)鍵字做修飾的;匿名內(nèi)部類是直接使用new來生成一個(gè)對(duì)象的引用。在new之前,這個(gè)匿名內(nèi)部類的父類是要先定義的。
2 代碼
abstract class Bird { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public abstract int fly(); } public class AnonymousInnerClass { public void birdBehaviour(Bird bird) { System.out.println(bird.getName() + "最高能飛 " + bird.fly() + "米"); } public static void main(String[] args) { AnonymousInnerClass AnonyObjObj = new AnonymousInnerClass(); AnonyObjObj.birdBehaviour(new Bird() { public int fly() { return 1000; } public String getName() { return "小鳥"; } }); } }
3 運(yùn)行
小鳥最高能飛 1000米
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
Java Kafka分區(qū)發(fā)送及消費(fèi)實(shí)戰(zhàn)
本文主要介紹了Kafka分區(qū)發(fā)送及消費(fèi)實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07java中String,數(shù)組,ArrayList三者之間的轉(zhuǎn)換
這篇文章主要介紹了java中String,數(shù)組,ArrayList三者之間的轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01SpringBoot?ScheduledTaskRegistrar解決動(dòng)態(tài)定時(shí)任務(wù)思路詳解
本文將從問題出發(fā),詳細(xì)介紹ScheduledTaskRegistrar類是如何解決動(dòng)態(tài)調(diào)整定時(shí)任務(wù)的思路,并給出關(guān)鍵的代碼示例,幫助大家快速地上手學(xué)習(xí)2023-02-02Java實(shí)現(xiàn)Windows計(jì)算器界面
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)Windows計(jì)算器界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06Java+EasyExcel實(shí)現(xiàn)文件的導(dǎo)入導(dǎo)出
在項(xiàng)目中我們常常需要Excel文件的導(dǎo)入與導(dǎo)出,手動(dòng)輸入相對(duì)有些繁瑣,所以本文教大家如何在Java中輕松導(dǎo)入與導(dǎo)出Excel文件,感興趣的可以學(xué)習(xí)一下2021-12-12