国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Java中內(nèi)部類的幾種表現(xiàn)形式

Java中內(nèi)部類的幾種表現(xiàn)形式 時間:2018-09-25      來源:未知

Java中內(nèi)部類的幾種表現(xiàn)形式:

1. 一般內(nèi)部類

一般特征:

內(nèi)部類可以訪問外部類的屬性(包括私有),

但是外部類(封裝類、內(nèi)嵌類)不能訪問內(nèi)部類的屬性。

表現(xiàn)形式:

public class Out {

int i = 10;

class Inner{

int i = 20;

void show(int i){

System.out.println(Out.this.i+":"+this.i+":"+i);

}

}

}

調(diào)用方式:

// 實例化內(nèi)部類的第一種形式.

Out.Inner oi = new Out().new Inner();

oi.show(30);

// 實例化內(nèi)部類的第二種形式.

Out o = new Out();

Out.Inner oi1 = o.new Inner();

oi1.show(40);

}

2. 私有內(nèi)部類

特性:

只能在本類當中去實例化內(nèi)部類,并調(diào)用其成員。

表現(xiàn)形式:

public class Out {

private class Inner{

void show(){

System.out.println("旺財");

}

}

void method(){

Inner i = new Inner();

i.show();

}

}

調(diào)用方式:

Out o = new Out();

o.method();

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

特性:

1.Inner class 可以聲明為static的,但此時就不能再使用外層封裝類的非static的成員變量;

2.非static的內(nèi)部類中的成員不能聲明為static的,只有在頂層類或static的內(nèi)部類中 才可聲明static成員

表現(xiàn)形式:

public class Out {

static int i = 10;

static class Inner{

static int j = 90;

void show(){

System.out.println(i+"旺財又來了"+j);

}

}

}

調(diào)用方式:

//這個是實例化靜態(tài)內(nèi)部類的方法。

Out.Inner oi = new Out.Inner();

oi.show();

4. 匿名內(nèi)部類

首先說下匿名內(nèi)部類的幾個使用原則:

匿名內(nèi)部類不能有構(gòu)造方法;

匿名內(nèi)部類不能定義任何的靜態(tài)成員、方法和類;

匿名內(nèi)部類不能是public、protected、private、static;

只能創(chuàng)建匿名內(nèi)部類的一個實例;

一個匿名內(nèi)部類一定是在new的后面,用其隱含實現(xiàn)一個接口或?qū)崿F(xiàn)一個類;

因匿名內(nèi)部類為局部內(nèi)部類,所以局部內(nèi)部類的所有限制對其都生效。

我寫一個匿名內(nèi)部類的常用的形式:

第一步:定義一個接口:

public interface DemoInt {

public abstract void dosomething();

}

第二步:定義一個類:

public class Demo {

void show(DemoInt d){

d.dosomething();

}

}

第三步:定義一個測試類(一般寫法):

public class Test {

public static void main(String[] args) {

Demo d = new Demo();

A a = new A();

// DemoInt a = new A(); 多態(tài)形式

d.show(a);

}

}

class A implements DemoInt{

@Override

public void dosomething() {

System.out.println("匿名內(nèi)部類");

}

}

定義一個測試類(采用匿名內(nèi)部類的寫法):

public class Test {

public static void main(String[] args) {

Demo d = new Demo();

d.show(new DemoInt() {

@Override

public void dosomething() {

System.out.println("匿名內(nèi)部類");

}

});

}

}

 
 

上一篇:Linux 下搭建Apache 服務(wù)器

下一篇:Android多線程編程

熱點文章推薦
華清學員就業(yè)榜單
高薪學員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權(quán)所有 ,京ICP備16055225號-5,京公海網(wǎng)安備11010802025203號

回到頂部