靜態內部類訪問外部類
Ⅰ 內部類可以訪問外部類的屬性和方法嗎
外部類名.this.外部類方法
內部類分為:有四種內部類
分別是:靜態內部類,成員內部類,局部內部累,匿名內部類。
匿名內部類因為沒有類名因此:
1.不能有構造方法
2.不能有任何靜態成員方法,或者類
3.不能用修飾符修飾,如public.private,protected
4.必須跟在new一個對象之後
Ⅱ 如何在靜態內部類里訪問外部類實例成員
java">classOuter
{
intx=3;
staticclassInner//靜態內部類
{
voidfun()
{
System.out.println("inner--"+newOuter().x);
}
}
}
Ⅲ jav靜態內部類中靜態成員可以訪問外部類的靜態成員嗎
所有的靜態屬性都沒有外部,內部之分,所以是可以隨便訪問的,你就這樣想吧,靜態的東西,是放到類同一層次的,而非靜態變數則是在類對象中,所以,靜態的東西,是程序一開始載入就存在的,而對象的變數則是要對象初始化成功之後才存在,所以靜態之間可以相互訪問,但成員變數就不行了。。。起碼我一直都是這樣理解的。
Ⅳ Java中靜態內部類的成員可以訪問外部類的靜態變數嗎
可以的,靜態方法只能調用靜態方法,非靜態方法也可以調用靜態方法,例子如下:
package com..stati.pack;
public class staticStri {
public String getNames(){
System.out.println("這是一個非靜態方法");
return null;
}
public static String getNamesList(){
System.out.println("這是一個靜態方法");
return null;
}
public void say(){
getNames();
getNamesList();
}
public static void show(){
getNamesList();
}
}
Ⅳ 為什麼靜態內部類的非靜態方法只能訪問外部類的靜態變數,而不可訪問外部類的非靜態變數
靜態方法只能訪問靜態的成員變數和靜態的成員方法。這是因為,靜態變數和方法隨著類的載入而載入,而非靜態成員是隨著對象的生成而生成。所以靜態成員或方法的載入時機要早於非靜態成員方法或變數的生成,先出現的怎麼能訪問後出現的呢?
而靜態內部類可以看作是一個靜態成員,所以道理同上。
請採納!
Ⅵ 一個靜態內部類能使用包含它的外部類的非靜態成員變數嗎
靜態內部類是不可以訪問非靜態外部類的成員變數;但是靜態外部類成員變數是都可以訪問的。共有私有都可以
Ⅶ JAVA靜態內部類好像可以訪問外部類的非靜態成員
setX()方法裡面的 x = x 等價於 形參自己給自己賦值,在編譯器里會出現 警告,提示是The assignment to variable x has no effect,而且你賦值的那個x並不是InnerClassTest的x變數
我認為 直接訪問是不行的,但是可以通過該方法里調用外部類的實例 來進行賦值,從而達到間接使用外部類的非靜態成員變數
Ⅷ Java:靜態內部類調用外部類的方法
static 用在類前面只是表示這個內部類與外面的類之間沒有實例之間的引用關系,是可以在內部類中直接創建外面的類的實例的。編譯器不會為我們自動創建關聯引用,但我們可以創建非關聯的實例。
這個時候相當於只是給了特定的可見性控制。
你創建兩個內部類,一個 static,一個非 static 然後在 eclipse 的 navigator 視圖中打開你的類觀察,那個非 static 類,編譯器自動創建了一個成員變數用來在外部類和內部類之間建立關聯。