java語言基礎入門 內部類的介紹

2021-07-15 17:15:59 字數 2325 閱讀 2393

什麼是內部類?內部類就是乙個類的內部再去定義乙個類,這個類作為外部的乙個屬性存在。其中,內部類作為外部類的乙個成員可以自由的訪問外部類中的屬性。而外部類不可以直接訪問內部類的屬性

內部類有四種存在方式:成員內部類、靜態內部類、區域性內部類、匿名內部類。

成員內部類:成員內部類是類作為外部類的成員而存在,不能帶有關鍵static,內部類在外部類看來相當於乙個屬性或方法。同樣內部類可以用public、private等許可權修飾符修飾。內部類中同樣可以定義自己的屬性以及方法,內部類通過關鍵字this來訪問自己的屬性以及方法,通過外部類.this.屬性或方法來訪問外部類的屬性以及方法。

成員內部類有三種例項化方法,分別為:1、通過外部類的非靜態方法來例項化內部類。2、通過外部類的靜態方法例項化內部類。3、內部類中通過this來表示內部類的例項。

先建立外部類物件再 外部類類名.內部類類名  物件名=外部類物件.new 內部類(); 或者兩部化一步: 外部類類名.內部類類名 物件名=new 外部類類名().new 外部類()

package innter_class;

import org.omg.messaging.syncscopehelper;

public class outer1

//外部類的非靜態方法訪問成員內部類

public void instanceinner1()

//外部類的靜態方法訪問成員內部類

public void staticintanceinner1()

class inter1

} public static void main(string args)

}

靜態內部類:用static修飾的內部類叫做靜態內部類。注意:乙個內部類如果用static修飾就相當於這個內部類是乙個外部定義的類。static修飾的內部類可以在內部定義屬於內部類的static屬性,不用static修飾的普通內部類不能定義用static修飾的屬性和方法。而靜態內部類只能訪問外部類的靜態屬性和方法。靜態內部類的例項化不必像普通內部類一樣先例項化外部類再例項化內部類,可以直接例項化內部類,如:外部類類名.內部類類名 物件名=new 外部類類名.內部類類名()。

package innter_class;

public class includestaticinterouter

}//普通方法建立內部類

public void setinter()

//靜態方法建立內部類物件

public static void setinter1()

public static void main(string args)

}

區域性內部類:區域性內部類也叫方法內部類,即在乙個方法內部定義的內部類。內部類的例項化過程和普通內部類相似,必須先例項化外部類再進行內部類的例項化。
package innter_class;

public class includelocalinterclassouter

public void dointer()

} //localinter localinter=new localinter();

new localinter();

} public static void main(string args)

}

匿名內部類:匿名內部類就是沒有名字的內部類,正因為它是沒有名字的,所以匿名內部類是沒有構造器的。

注意:匿名內部類中不能定義任何靜態成員、方法和類,並且不能用public、protected、private、static等修飾,只能建立匿名內部類的乙個例項。乙個匿名內部類一定是在new的後面,用其隱含的實現乙個介面或擴充套件乙個類。

下面為普通內部類例項與匿名內部類例項對比

package innter_class;

public inte***ce a

package innter_class;

public class anonymousouter

public static void main(string args)

} new anonymousouter().callouter(new inter());

}}

package innter_class;

public class includeanonymousinterclassouter

public static void main(string args)

});}}

(五)Java入門 內部類

內部類可以直接訪問外部類的內容,但是外部類要想訪問內部類,必須建立內部類的物件。內部類可以修飾為static,那裡面訪問外部類的變數必須是static的。1 若內部類不加static,則相當於外部類的成員。out.in a new out new in 2 若內部類加上static,外部類就不要建立...

java基礎 內部類

一 內部類 將乙個類定義在另乙個類的裡面,對裡面那個類就稱為內部類 內建類,巢狀類 非static內部類可以直接訪問外部類中的成員,包括私有成員。原因 因為內部類中持有了乙個外部類的引用,引用的格式為 外部類名.this 非靜態內部類不能定義static成員 1 內部類定義在外部類的成員位置上 方法...

java基礎《內部類》

一 內部類的訪問規則 1.內部類可以直接訪問外部類中的成員,包括私有 之所以可以直接訪問外部類中的成員,是因為內部類中持有了乙個外部類的引用 格式 外部類名.this 2.外部類要訪問內部類,必須建立內部類物件 訪問格式 1.當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中,可以直接...