本文目錄一覽:
什麼是java內部類
1、嵌套類,如Inner1,Inner2,StaticInner(靜態內部類)就是內部類:
class Outter
{
class Inner1
{
}
class Inner2
{
}
static class StaticInner
{
}
}
2、匿名內部類,如:
Thread t=new Thread(new Runnable() {
public void run() {
//
}
});
其中new Runnable() {
public void run() {
//
}
}的作用就是創建一個實現了接口Runnable的匿名內部類的實例,而最外層的{}就是這個匿名內部類的定義。
Java 靜態內部類作用?
1、變值權限修飾作用,在定義內部類的時候,可以在其前面加上一個權限修飾符static。此時這個內部類就變為了靜態內部類。
2、在某些特殊的情況下,少了這個靜態內部類還真是不行。如在進行代碼程序測試的時候,如果在每一個Java源文件中都設置一個主方法(主方法是某個應用程序的入口,必須具有),那麼會出現很多額外的代碼。
3、最主要的時這段主程序的代碼對於Java文件來說,只是一個形式,其本身並不需要這種主方法。但是少了這個主方法又是萬萬不行的。在這種情況下,就可以將主方法寫入到靜態內部類中,從而不用為每個Java源文件都設置一個類似的主方法。
這對於代碼測試是非常有用的。在一些中大型的應用程序開發中,則是一個常用的技術手段。
擴展資料
例如:
對於兩個類,擁有相同的方法:
class People{
run();
}
interface Machine{
run();
}
此時有一個robot類:
class Robot extends People implement Machine.
此時run()不可直接實現。
interface Machine{
void run();
}
class Person{
void run(){
System.out.println(“run”);
}
}
class Robot extends Person{
private class MachineHeart implements Machine{
public void run(){
System.out.println(“heart run”);
}
}
public void run(){
System.out.println(“Robot run”);
}
Machine.getMachine(){returnnew MachineHeart();
}
class Test{
publicstaticvoid main(String[] args){
Robot robot=new Robot();
Machine m=robot.getMachine();
m.run();
robot.run();
}
}
參考資料來源:百度百科-靜態內部類
Java內部類有幾種?
Java中的幾種內部類:
成員內部類:作為外部類的一個成員存在,與外部類的屬性、方法並列。當某個類除了他的外部類,不會被其他類使用時應該選擇使用成員內部類。
局部內部類:局部內部類定義在外部類的某個代碼塊或方法塊中。如果只會在某個方法或塊中創建這個類的對象,就可以使用局部內部類。
匿名內部類:匿名內部類一般定義在需要傳遞接口或回調的的地方,一個匿名內部類一定是在new的後面,用其隱含實現一個接口或繼承一個類。假如只需要創建這個類的一個對象不需要知道其實際類型(不需要使用到類名),那麼就可以使用匿名內部類。
靜態內部類:和成員內部類一樣,作為外部類的一個成員存在,與外部類的屬性、方法並列,只不過在聲明類的時候加入了static關鍵字。有時候,使用內部類只是為了把一個類隱藏在另外一個類的內部,並不需要內部類引用外圍類對象。這時可以使用靜態內部類,以便取消產生對外部類的引用。
java中內部類的概念?
內部類是Java2中新出現的一種類。
簡單的說,內部(inner)類指那些類定義代碼被置於其它類定義中的類;而對於一般的、類定義代碼不嵌套在其它類定義中的類,稱為頂層(top-level)類。對於一個內部類,包含其定義代碼的類稱為它的外部(outer)類。
在編譯之後,生成的編譯文件中,內部類的名稱為OuterClass$InnerClass.class,其中OuterClass是內部類所在的類的名字,InnerClass是該內部類的名字。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/183326.html