久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

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

Java中內部(bu)類的幾種表現形式(shi) 時間:2018-09-25      來源:未(wei)知

Java中內(nei)部類的幾種表現形式:

1. 一般內部類

一般特征:

內(nei)部(bu)類(lei)(lei)可以訪(fang)問外部(bu)類(lei)(lei)的屬性(包(bao)括(kuo)私(si)有),

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

表現形式:

public class Out {

int i = 10;

class Inner{

int i = 20;

void show(int i){

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

}

}

}

調用方式:

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

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

oi.show(30);

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

Out o = new Out();

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

oi1.show(40);

}

2. 私有內部類

特性:

只(zhi)能(neng)在本類當中去(qu)實例化(hua)內部類,并調用其成員。

表現形式:

public class Out {

private class Inner{

void show(){

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

}

}

void method(){

Inner i = new Inner();

i.show();

}

}

調用方式:

Out o = new Out();

o.method();

3. 靜態內部類

特性:

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

2.非static的內部(bu)類(lei)中(zhong)(zhong)的成(cheng)員(yuan)不能聲(sheng)明(ming)為static的,只有在頂層(ceng)類(lei)或static的內部(bu)類(lei)中(zhong)(zhong) 才可聲(sheng)明(ming)static成(cheng)員(yuan)

表現形式:

public class Out {

static int i = 10;

static class Inner{

static int j = 90;

void show(){

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

}

}

}

調用方式:

//這個是實例(li)化靜態內部類的方法。

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

oi.show();

4. 匿名內部類

首先說(shuo)下匿名內部類的幾(ji)個使用原則(ze):

匿名內部類不能(neng)有(you)構造(zao)方法(fa);

匿名(ming)內(nei)部類(lei)不能(neng)定義任何的(de)靜態成員、方法和類(lei);

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

只能創建匿(ni)名內部類(lei)的一個實例;

一(yi)個匿(ni)名內部類(lei)一(yi)定是在new的后面,用其隱(yin)含實(shi)現一(yi)個接口(kou)或實(shi)現一(yi)個類(lei);

因匿名內部(bu)類為局部(bu)內部(bu)類,所以局部(bu)內部(bu)類的所有限制對其(qi)都生效(xiao)。

我寫一個匿(ni)名內部類的(de)常用的(de)形式:

第一步:定義一個接口(kou):

public interface DemoInt {

public abstract void dosomething();

}

第二(er)步:定(ding)義一個類:

public class Demo {

void show(DemoInt d){

d.dosomething();

}

}

第三步(bu):定(ding)義一個測試類(lei)(一般寫(xie)法(fa)):

public class Test {

public static void main(String[] args) {

Demo d = new Demo();

A a = new A();

// DemoInt a = new A(); 多態形式(shi)

d.show(a);

}

}

class A implements DemoInt{

@Override

public void dosomething() {

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

}

}

定義一個測試類(采用匿(ni)名內部(bu)類的寫法):

public class Test {

public static void main(String[] args) {

Demo d = new Demo();

d.show(new DemoInt() {

@Override

public void dosomething() {

System.out.println("匿(ni)名內部類");

}

});

}

}

 
 

上一篇:Linux 下搭建Apache 服務器

下一篇:Android多線程編程

熱(re)點文章推薦
華清學員就業(ye)榜單
高薪學員(yuan)經(jing)驗分享
熱(re)點新聞推薦(jian)
前臺(tai)專(zhuan)線:010-82525158 企(qi)業培訓洽談(tan)專線:010-82525379 院校合作洽談(tan)專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部