4 3 Java高階(三)內部類

2021-08-21 09:38:56 字數 2582 閱讀 9303

1、內部類,就是在乙個類的內部在定義乙個類。

2、分類:靜態內部類、成員內部類、區域性內部類、匿名內部類

3、內部類的簡單應用:

(1)新建乙個外部類outer,在outer裡寫乙個內部類inter

public class outer 

public class inter }

}

(2)宣告內部類inter方法一

public void test01()

//輸出結果【1001 admin】

(3)宣告內部類inter方法二

public void test02()

//輸出結果【1001 admin】

1、在user類中定義兩個內部類,分別是teacher、student,並新增帶參構造方法

public class user 

public void play()

//內部類teacher

public class teacher

public void show()

}//內部類teacher

public class student

public void show()

}}

2、呼叫內部類

public void test03()

//輸出結果【1001 張三 男 廣東廣州 1990-02-14 15018743146 7】

1、靜態內部類可以用public,protected,private,預設訪問許可權修飾。

2、在靜態內部類中可以存在靜態成員和非靜態的成員,靜態內部類只能訪問外部類的靜態成員變數和方法,不能訪問外部類的非靜態成員變數和方法。

3、非靜態內部類中不能存在靜態成員,非靜態內部類中可以呼叫外部類的任何成員,不管是靜態的還是非靜態的。

4、**示例:

public class staticouter

}/**

* 非靜態內部類

*/class innerclass2

}/**

* 外部類方法

*/public void display()

public static void main(string args)

/** 輸出結果:

* chenssy_static

outclass name :chenssy

chenssy_inner

outerclass name:chenssy

*/}

1、成員內部類中不能存在任何static的變數,static方法和static**塊

2、成員內部類是依附於外部類的,所以只有先建立了外部類才能夠建立內部類。

3、**示例:

public class memberouter

public void outer_f2()

class inner

}//外部類的非靜態方法訪問成員內部類(和使用普通類沒什麼區別)

public void outer_f3()

// 外部類的靜態方法訪問成員內部類,與在外部類的外部訪問成員內部類一樣,應該具體的指出這個物件的型別:outerclassname.innerclassname

public static void outer_f4()

public static void main(string args)

/** 輸出結果:

* 1100

10010

20*/

}

public class partouter

string getslip()

}trackingslip ts = new trackingslip("chenssy");

string string = ts.getslip();}}

public void track()

public static void main(string args)

}

1、匿名內部類就是沒有名字的內部類。

2、使用匿名內部類還有個前提條件:必須繼承乙個父類或實現乙個介面, 當然也僅能只繼承乙個父類或者實現乙個介面。

3、如果滿足下面的一些條件,使用匿名內部類是比較合適的: 

(1)只用到類的乙個例項。

(2)類在定義後馬上用到。 

(3)類非常小(推薦是在4行**以下)

(4)給類命名並不會導致你的**更容易被理解。

4、**示例:

public class anouter

}; /* 注意:分號不能省 */

}public static void main(string args)

//輸出結果

}inte***ce innerclass

Java內部類 Java例項內部類

例項內部類是指沒有用 static 修飾的內部類。示例 如下 public class outer 上述示例中的 inner 類就是例項內部類。例項內部類有如下特點。1 在外部類的靜態方法和外部類以外的其他類中,必須通過外部類的例項建立內部類的例項。public class outer inner1...

Java內部類詳解(三)

首先,靜態內部類實際上與普通類 即類名必須與檔名一樣的頂級類 一樣,只是靜態內部類在某一類的內部定義了而已,既然是類,要想使用就必須例項化。概念上與靜態變數 靜態方法是不一樣的,不要被 靜態 兩個字迷惑了 不要以為凡是靜態的東西就不需要例項化就可以直接使用,靜態內部類是有區別 而且只有靜態內部類,而...

Java內部類 靜態內部類

靜態內部類是外部類的靜態成員,不依賴於外部類的物件而存在,因此在外部類外面建立靜內部類物件時不需要首先建立外部類的物件 靜態內部類也可以稱為靜態巢狀類或頂級巢狀類。靜態內部類與外部類物件之間不存在著對成員的共享關係,靜態內部類其實已經脫離了外部類的控制 static關鍵字只是說明其在建立物件的時候不...