真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java的內(nèi)部類怎么用

Java的內(nèi)部類怎么用?針對這個問題,這篇文章給出了相對應(yīng)的分析和解答,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。

10年的淅川網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整淅川建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“淅川網(wǎng)站設(shè)計”,“淅川網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。

根據(jù)定義的方式不同,內(nèi)部類分為靜態(tài)內(nèi)部類、成員內(nèi)部類、局部內(nèi)部類、匿名內(nèi)部類四種。

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

定義在類內(nèi)部的靜態(tài)類,就是靜態(tài)內(nèi)部類。

public class Out {
     private static int a;
     private int b;
     public static class Inner {
         public void print() {
             System.out.println(a);
         }
     }
}

1)靜態(tài)內(nèi)部類可以訪問外部類所有的靜態(tài)變量和方法,即使是private的也一樣。

2)靜態(tài)內(nèi)部類和一般類一致,可以定義靜態(tài)變量、方法、構(gòu)造方法等。

3)其他類使用靜態(tài)內(nèi)部類需要使用“外部類.靜態(tài)內(nèi)部類”方式。如下所示:Out.Inner inner = new Out.Inner();  inner.print();

4)Java集合類HashMap內(nèi)部就有一個靜態(tài)內(nèi)部類Entry。Entry是HashMap存放元素的抽象,HashMap內(nèi)部維護(hù)Entry數(shù)組用來存放元素,但是Entry對使用者是透明的。像這種和外部類關(guān)系密切的,且不依賴外部類實例的,都可以使用靜態(tài)內(nèi)部類。

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

定義在類內(nèi)部的非靜態(tài)類,就是成員內(nèi)部類。成員內(nèi)部類不能定義靜態(tài)方法和變量(final修飾的除外)。這是因為成員內(nèi)部類是非靜態(tài)的,類初始化的時候先初始化靜態(tài)成員,如果允許成員內(nèi)部類定義靜態(tài)變量,那么成員內(nèi)部類的靜態(tài)變量初始化順序是有歧義的。

public class Out {
     private static int a;
     private int b;
     public class Inner {
         public void print() {
             System.out.println(a);
             System.out.println(b);
         }
     }
}

3.局部內(nèi)部類(定義在方法中的類)

定義在方法中的類,就是局部類。如果一個類只在某個方法中使用,則可以考慮使用局部類。

public class Out {
     private static int a;
     private int b;
     public void test(final int c) {
         final int d = 1;
         class Inner {
             public void print() {
                 System.out.println(c);
             }
         }
     }
}

4.匿名內(nèi)部類(要繼承一個父類或?qū)崿F(xiàn)一個接口、直接使用new來生成一個對象的引用)

匿名內(nèi)部類,我們必須要繼承一個父類或?qū)崿F(xiàn)一個接口,當(dāng)然也僅能只繼承一個父類或?qū)崿F(xiàn)一個接口。同時它也是沒有class關(guān)鍵字,這是因為匿名內(nèi)部類是直接使用new來生成一個對象的引用。

1)匿名內(nèi)部類僅能被使用一次,創(chuàng)建匿名內(nèi)部類時,它會立即創(chuàng)建一個該類的實例,該類的定義會立即消失,所以匿名內(nèi)部類時不能夠被重復(fù)使用的。

2)匿名內(nèi)部類不能定義構(gòu)造函數(shù),不能存在任何的靜態(tài)成員變量和靜態(tài)方法。

3)匿名內(nèi)部類中的方法不能是抽象的,它必須要實現(xiàn)接口或繼承父類的所有抽象方法。

4)匿名內(nèi)部類訪問的外部類成員變量或成員方法必須用static修飾,內(nèi)部類可以訪問外部類私有變量和方法。

public 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 Test {
     public void test(Bird bird){
         System.out.println(bird.getName() + "能夠飛 " + bird.fly() + "米");
     }
     public static void main(String[] args) {
         Test test = new Test();
         test.test(new Bird() {
             public int fly() {
                 return 10000;
             }
             public String getName() {
                 return "大雁";
             }
         });
         }
}

關(guān)于Java的內(nèi)部類的簡單使用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


新聞名稱:Java的內(nèi)部類怎么用
文章URL:http://weahome.cn/article/jsppdd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部