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

首頁綜合 正文
目錄

柚子快報激活碼778899分享:開發(fā)語言 【Java】內(nèi)部類

柚子快報激活碼778899分享:開發(fā)語言 【Java】內(nèi)部類

http://yzkb.51969.com/

認(rèn)識內(nèi)部類:Java中內(nèi)部類分如下三種

匿名內(nèi)部類

實例內(nèi)部類

靜態(tài)實例內(nèi)部類

匿名內(nèi)部類

匿名內(nèi)部類顧名思義就是在創(chuàng)建的時候不用賦予名字。

代碼演示:

//匿名內(nèi)部類

interface IA{

void test();

}

public class Main{

public static void main(String[] args) {

new IA(){

@Override

public void test() {

System.out.println("hallo World");

}

}.test();

}

}

我們定義了一個接口 IA 接著我們在 Main 方法中實例化了該接口,但沒有用引用來接收該接口,這就表示內(nèi)部類,接著我們在內(nèi)部類中重寫了 test 方法,并且在最后調(diào)用了該方法。

運行截圖:

實例內(nèi)部類

我們在一個類中定義的變量和方法都叫做實例成員和實例方法,顧名思義定義在一個類中的類就被稱作為實例內(nèi)部類。

代碼演示:

class OutClass{

public int data1 = 1;

private int data2 = 2;

public static int data3 = 3;

class InnerClass{

public int data4 = 4;

private int data5 = 5;

public void test(){

System.out.println("內(nèi)部類的test方法");

}

}

public void test(){

System.out.println("外部類的test方法");

}

}

public class Main{

public static void main(String[] args) {

//獲取實例內(nèi)部類時,要依賴外部類

OutClass outclass = new OutClass();

OutClass.InnerClass innerclass = outclass.new InnerClass();

OutClass.InnerClass innerclass2 = new OutClass().new InnerClass();

innerclass2.test();

innerclass.test();

}

}

我們在 OutClass 類中定義了另外一個類 InnerClass ,在內(nèi)部類中同樣也可以擁有成員權(quán)限修飾符修飾的變量和方法。

既然定義了一個類,那么必然就可以實例化,這里我們實例化內(nèi)部類有兩種方法:

//獲取實例內(nèi)部類時,要依賴外部類

//第一種

OutClass outclass = new OutClass();

OutClass.InnerClass innerclass = outclass.new InnerClass();

//第二種

OutClass.InnerClass innerclass2 = new OutClass().new InnerClass();

我們在實例化內(nèi)部類的時候必須要依靠外部類,也就是說我們先要實例化外部類,再實例化內(nèi)部類。

上述代碼的運行截圖:

?

我們可以看出兩種實例化都可行。

在內(nèi)部類中我們能否有 static 修飾的成員?我們在編譯器中試試看

我們發(fā)現(xiàn)報錯了,為什么呢?我們知道被 static 修飾的成員就會變得不依靠實例,但是我們在實例化內(nèi)部類的時候必須要依靠外部類的實例,很明顯沖突了!

但是我們可以有 final 修飾的成員。

這時就不報錯了!

如果在外部類和內(nèi)部類中有同名的成員,那么如何在內(nèi)部類中訪問外部類的成員。

class OutClass{

public int data1 = 1;

private int data2 = 2;

public static int data3 = 3;

class InnerClass{

public int data4 = 4;

private int data5 = 5;

public int data1 = 6;

public void test(){

System.out.println(OutClass.this.data1);

}

}

public void test(){

}

}

public class Main{

public static void main(String[] args) {

OutClass.InnerClass innerclass2 = new OutClass().new InnerClass();

innerclass2.test();

}

}

運行截圖:

使用 外部類類名.this.重名成員?就可以在內(nèi)部類中訪問外部類的重名成員。

在外部類中是不能直接訪問內(nèi)部類中的成員,如果要訪問就必須要實例化內(nèi)部類。

代碼演示:

class OutClass{

public int data1 = 1;

private int data2 = 2;

public static int data3 = 3;

class InnerClass{

public int data4 = 4;

private int data5 = 5;

public int data1 = 6;

public void test(){

System.out.println(OutClass.this.data1);

}

}

public void test(){

InnerClass innerclass = new InnerClass();

System.out.println(innerclass.data4);

}

}

public class Main{

public static void main(String[] args) {

OutClass outclass = new OutClass();

outclass.test();

}

}

靜態(tài)實例內(nèi)部類

代碼示例:

class OutClass{

private int data1 = 1;

public int data2 = 2;

public static int data3 = 3;

static class InnerClass{

private int data4 = 4;

public int data5 = 5;

public static int data6 = 6;

}

}

public class Main{

public static void main(String[] args) {

OutClass.InnerClass innerclass = new OutClass.InnerClass();

System.out.println(innerclass.data5);

}

}

運行結(jié)果:

我們在實例化靜態(tài)內(nèi)部類的時候就不需要依靠外部內(nèi)部類的實例了,就變得方便了許多。

我們可以看到在靜態(tài)內(nèi)部類中定義成員變量用了 static 修飾,是的靜態(tài)內(nèi)部類可以用 static 修飾,因為靜態(tài)內(nèi)部類的實例化不依靠外部類的實例。

在靜態(tài)內(nèi)部類中是無法直接訪問外部類的成員,并且外部類也無法直接訪問靜態(tài)內(nèi)部類的成員,都必須借助實例化才能訪問。

柚子快報激活碼778899分享:開發(fā)語言 【Java】內(nèi)部類

http://yzkb.51969.com/

推薦文章

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

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

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

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

發(fā)布評論

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

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

掃描二維碼手機訪問

文章目錄