欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:【Java基礎(chǔ)】匿名內(nèi)部類

柚子快報(bào)激活碼778899分享:【Java基礎(chǔ)】匿名內(nèi)部類

http://yzkb.51969.com/

?專欄【Java基礎(chǔ)】

?喜歡的詩句:更喜岷山千里雪 三軍過后盡開顏。

?音樂分享【The?truth?that?you?leave】

大一同學(xué)小吉,歡迎并且感謝大家指出我的問題殺

目錄

?什么是匿名內(nèi)部類

?為什么要使用匿名內(nèi)部類

?詳細(xì)解釋

????不使用匿名內(nèi)部類

????使用匿名內(nèi)部類

?書寫匿名內(nèi)部類的格式

?方法一

?方法二?

?匿名內(nèi)部類的應(yīng)用例子

?題目1

?方法一

?方法二?

??題目2

?什么是匿名內(nèi)部類

匿名內(nèi)部類是 Java 編程語言中一種特殊的類,它沒有顯式地定義類名,而是在創(chuàng)建對象時通過傳遞實(shí)現(xiàn)了某個接口或繼承了某個類的代碼塊來定義類。通常,我們使用它來簡化代碼、減少類的數(shù)量和更高效地編寫事件處理程序等。

?為什么要使用匿名內(nèi)部類

在實(shí)際開發(fā)中,我們常常遇到這樣的情況:一個接口/類的方法的某個實(shí)現(xiàn)方式在程序中只會執(zhí)行一次,但為了使用它,我們需要創(chuàng)建它的實(shí)現(xiàn)類/子類去實(shí)現(xiàn)/重寫。此時可以使用匿名內(nèi)部類的方式,可以無需創(chuàng)建新的類,減少代碼。

?詳細(xì)解釋

????不使用匿名內(nèi)部類

比如下面的代碼,定義了一個接口,接口里面有一個show方法

public interface Interface01 {

void show();

}

?為了使用該接口的show方法,我們需要去創(chuàng)建一個實(shí)現(xiàn)類,同時書寫show方法的具體實(shí)現(xiàn)方式

public class Interface01Impl implements Interface01{

@Override

public void show() {

System.out.println("奮斗5天,期末考試我要過Java");

}

}

在上面的代碼中,實(shí)現(xiàn)類Interface01全程只使用一次,為了這一次的使用要去創(chuàng)建一個類,未免太過麻煩。那么我們可以使用匿名內(nèi)部類。

????使用匿名內(nèi)部類

public static void main(String[] args) {

Interface01 interface01 = new Interface01() {

@Override

public void show() {

System.out.println("奮斗5天,期末考試我要過Java");

}

};

//調(diào)用接口方法

interface01.show();

}

?書寫匿名內(nèi)部類的格式

?方法一

這種方法和之前的多態(tài)基本上沒有區(qū)別

new 接口/類名(參數(shù)1, 參數(shù)2...){

實(shí)現(xiàn)方法1(){

}

實(shí)現(xiàn)方法2(){

}

......

};

?方法二?

new Thread(new Runnable() {

@Override

public void run() {

System.out.println("奮斗5天,期末考試我要過Java");

}

}).start();

?匿名內(nèi)部類的應(yīng)用例子

?題目1

????????在程序的show()方法里面定義Father類的匿名子類,重寫Father類的method()方法,并在合適的位置調(diào)用method()方法

?方法一

abstract class Father {

int num;

public Father(int num) {

this.num = num;

}

public abstract void method();

}

class Niming {

public void show() {

Father father = new Father(10) { // 定義 Father 類的匿名子類

@Override

public void method() { // 重寫 Father 類的 method() 方法

System.out.println("Father 類的匿名子類重寫了 method() 方法");

System.out.println("num 的值為:" + num);

}

};

father.method(); // 在合適的位置調(diào)用 method() 方法

}

}

public class InnerClasssDemo5 {

public static void main(String[] args) {

Niming niming = new Niming();

niming.show();

}

}

運(yùn)行結(jié)果

Father 類的匿名子類重寫了 method() 方法 num 的值為:10

?方法二?

interface InterFace1 {

int num = 100;

void method();

}

class Niming2 {

public void show() {

InterFace1 interFace1 = new InterFace1() { // 定義實(shí)現(xiàn)了 InterFace1 接口的匿名內(nèi)部類

@Override

public void method() { // 重寫 InterFace1 接口中的 method() 方法

System.out.println("InterFace1 接口的匿名內(nèi)部類重寫了 method() 方法");

System.out.println("num 的值為:" + num);

}

};

interFace1.method(); // 在合適的位置調(diào)用 method() 方法

}

}

public class InnerClassDemo6 {

public static void main(String[] args) {

Niming2 niming2 = new Niming2();

niming2.show();

}

}

?運(yùn)行結(jié)果

InterFace1 接口的匿名內(nèi)部類重寫了 method() 方法 num 的值為:100

??題目2

????????在InnnerClassDemo7類的main()方法中使用PersonDemo類的pd對象調(diào)用method(Person p)方法,向person接口變量p傳遞一個匿名子類對象,重寫Person接口的study()方法,

package cn.num07;

interface Person {

void study();

}

class PersonDemo {

public void method(Person p) {

p.study();

}

}

public class InnerClassDemo7 {

public static void main(String[] args) {

PersonDemo pd = new PersonDemo();

pd.method(new Person() { // 向 person 接口變量 p 傳遞一個匿名子類對象

@Override

public void study() { // 重寫 Person 接口的 study() 方法

System.out.println("我正在學(xué)習(xí)Java編程語言");

}

});

}

}

運(yùn)行結(jié)果

我正在學(xué)習(xí)Java編程語言?

?

?殺如果大家有不明白的地方,或者文章有問題,歡迎大家在評論區(qū)討論,指正殺

柚子快報(bào)激活碼778899分享:【Java基礎(chǔ)】匿名內(nèi)部類

http://yzkb.51969.com/

參考文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/17833369.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄