国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Java中的內(nèi)部類和匿名類

2019-11-18 15:35:25
字體:
供稿:網(wǎng)友

    提起java內(nèi)部類(Inner Class)可能很多人不太熟悉,實際上類似的概念在C++里也有,那就是嵌套類(Nested Class), 關(guān)于這兩者的區(qū)別與聯(lián)系,在下文中會有對比。內(nèi)部類從表面上看,就是在類中又定義了一個類(下文會看到,內(nèi)部類可以在很多地方定義),而實際上并沒有那么 簡單,乍看上去內(nèi)部類似乎有些多余,它的用處對于初學(xué)者來說可能并不是那么顯著,但是隨著對它的深入了解,你會發(fā)現(xiàn)Java的設(shè)計者在內(nèi)部類身上的確是用 心良苦。學(xué)會使用內(nèi)部類,是把握J(rèn)ava高級編程的一部分,它可以讓你更優(yōu)雅地設(shè)計你的程序結(jié)構(gòu)。下面從以下幾個方面來介紹:


  • 第一次見面
 

public interface Contents {
    int value();
}

public interface Destination {
    String readLabel();
}

public class Goods {
    PRivate class Content implements Contents {
        private int i = 11;
        public int value() {
            return i;
        }
    }

    protected class GDestination implements Destination {
        private String label;
        private GDestination(String whereTo) {
            label = whereTo;
        }
        public String readLabel() {
            return label;
        }
    }

    public Destination dest(String s) {
        return new GDestination(s);
    }
    public Contents cont() {
        return new Content();
    }
}

class TestGoods {
    public static void main(String[] args) {
        Goods p = new Goods();
        Contents c = p.cont();
        Destination d = p.dest("Beijing");
    }
}

    在 這個例子里類Content和GDestination被定義在了類Goods內(nèi)部,并且分別有著protected和private修飾符來控制訪問級 別。Content代表著Goods的內(nèi)容,而GDestination代表著Goods的目的地。它們分別實現(xiàn)了兩個接口Content和 Destination。在后面的main方法里,直接用 Contents c和Destination d進(jìn)行操作,你甚至連這兩個內(nèi)部類的名字都沒有看見!這樣,內(nèi)部類的第一個好處就體現(xiàn)出來了——隱藏你不想讓別人知道的操作,也即封裝性。

    同時,我們也發(fā)現(xiàn)了在外部類作用范圍之外得到內(nèi)部類對象的第一個方法,那就是利用其外部類的方法創(chuàng)建并返回。上例中的cont()和dest()方法就是這么做的。那么還有沒有別的方法呢?當(dāng)然有,其語法格式如下:

outerObject=new outerClass(ConstrUCtor Parameters);

outerClass.innerClass inNerobject=outerObject.new InnerClass(Constructor Parameters);

    注重在創(chuàng)建非靜態(tài)內(nèi)部類對象時,一定要先創(chuàng)建起相應(yīng)的外部類對象。至于原因,也就引出了我們下一個話題——

  • 非靜態(tài)內(nèi)部類對象有著指向其外部類對象的引用



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南和县| 栾城县| 德昌县| 延川县| 葫芦岛市| 五大连池市| 北宁市| 怀柔区| 丰台区| 潮安县| 苗栗市| 宣威市| 辽宁省| 蓬莱市| 衢州市| 清丰县| 巧家县| 东乡族自治县| 江津市| 兴海县| 台江县| 北流市| 绥棱县| 九龙县| 象山县| 庆阳市| 航空| 临邑县| 桓仁| 进贤县| 来宾市| 花莲市| 连南| 建始县| 固阳县| 大荔县| 运城市| 汉寿县| 龙里县| 长岭县| 泰宁县|