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

首頁綜合 正文
目錄

柚子快報激活碼778899分享:java內(nèi)部類的本質(zhì)

柚子快報激活碼778899分享:java內(nèi)部類的本質(zhì)

http://yzkb.51969.com/

定義在類內(nèi)部,可以實現(xiàn)對外部完全隱藏,可以有更好的封裝性,代碼實現(xiàn)上也往往更為簡潔。

內(nèi)部類可以方便地訪問外部類的私有變量,可以聲明為private從而實現(xiàn)對外完全隱藏。 在Java中,根據(jù)定義的位置和方式不同,主要有4種內(nèi)部類:

靜態(tài)內(nèi)部類:可以被外部使用(但要看訪問權(quán)限而定)成員內(nèi)部類:可以被外部使用(但要看訪問權(quán)限而定)方法內(nèi)部類:在一個方法內(nèi)限定和使用匿名內(nèi)部類:不能在外部使用

1.靜態(tài)內(nèi)部類:

class outer{

private static int shared=100;

public static class Staticinter{

public void innermethod(){

System.out.println(shared);

}

}

public void test(){

Staticinter si=new Staticinter();

si.innermethod();

}

}

靜態(tài)內(nèi)部類可以有:靜態(tài)變量、靜態(tài)方法、成員方法、成員變量、構(gòu)造方法等。它可以訪問外部類的靜態(tài)變量和方法,如innerMethod直接訪問shared變量。在類內(nèi)部,可以直接使用內(nèi)部靜態(tài)類,如test()方法所示。

public靜態(tài)內(nèi)部類可以被外部使用,只是需要通過“外部類.靜態(tài)內(nèi)部類”的方式使用:

public static void main(String[] args) {

outer.Staticinter O=new outer.Staticinter();

O.innermethod();

}

靜態(tài)內(nèi)部類的實現(xiàn): 代碼實際上會生成兩個類:一個是Outer,另一個是Outer$StaticInner 內(nèi)部類訪問了外部類的一個私有靜態(tài)變量shared,而我們知道私有變量是不能被類外部訪問的,Java的解決方法是:自動為Outer生成一個非私有訪問方法access$0,它返回這個私有靜態(tài)變量shared。

靜態(tài)內(nèi)部類的使用場景是很多的,如果它與外部類關(guān)系密切,且不依賴于外部類實例,則可以考慮定義為靜態(tài)內(nèi)部類。比如,一個類內(nèi)部,如果既要計算最大值,又要計算最小值,可以在一次遍歷中將最大值和最小值都計算出來,但怎么返回呢?可以定義一個類Pair,包括最大值和最小值,但Pair這個名字太普遍,而且它主要是類內(nèi)部使用的,就可以定義為一個靜態(tài)內(nèi)部類。

2.成員內(nèi)部類:

class outer{

private int shared=100;

public class inter{

public void innermethod(){

System.out.println(shared);

}

}

public void test(){

inter si=new inter();

si.innermethod();

}

}

如果內(nèi)部類與外部類關(guān)系密切,需要訪問外部類的實例變量或方法,則可以考慮定義為成員內(nèi)部類。 外部類的一些方法的返回值可能是某個接口,為了返回這個接口,外部類方法可能使用內(nèi)部類實現(xiàn)這個接口,這個內(nèi)部類可以被設(shè)為private,對外完全隱藏。

3.方法內(nèi)部類:

class outer{

private int shared=100;

public void test(){

final String str="hello";

class inner{

public void innermethod(){

System.out.println(shared);

}

}

inner in=new inner;

in.innermethod();

}

}

類Inner定義在外部類方法test中,方法內(nèi)部類只能在定義的方法內(nèi)被使用。如果方法是實例方法,則除了靜態(tài)變量和方法,內(nèi)部類還可以直接訪問外部類的實例變量和方法,如innerMethod直接訪問了外部私有實例變量a。如果方法是靜態(tài)方法,則方法內(nèi)部類只能訪問外部類的靜態(tài)變量和方法。方法內(nèi)部類還可以直接訪問方法的參數(shù)和方法中的局部變量,不過,這些變量必須被聲明為final,如innerMethod直接訪問了方法參數(shù)param和局部變量str。 4.匿名內(nèi)部類

柚子快報激活碼778899分享:java內(nèi)部類的本質(zhì)

http://yzkb.51969.com/

參考文章

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

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

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

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

發(fā)布評論

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

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄