成員內部類中不能存在任何static的變數和方法;
成員內部類是依附於外圍類的,所以只有先建立了外圍類才能夠建立內部類
public class outerclass
public class innerclass
}/*推薦使用get***()來獲取成員內部類,尤其是該內部類的建構函式無引數時 */
public innerclass getinnerclass()
public static void main(string args)
}--------------------
chenssy...
outerclass...
有這樣一種內部類,它是巢狀在方法和作用於內的,對於這個類的使用主要是應用與解決比較複雜的問題,想建立乙個類來輔助我們的解決方案,到那時又不希望這個類是公共可用的,所以就產生了區域性內部類,區域性內部類和成員內部類一樣被編譯,只是它的作用域發生了改變,它只能在該方法和屬性中被使用,出了該方法和屬性就會失效。
定義在方法裡:
public class parcel5
public string readlabel()
}return new pdestionation(str);
}public static void main(string args)
}
定義在作用域內:public class parcel6
string getslip()
}trackingslip ts = new trackingslip("chenssy");
string string = ts.getslip();}}
public void track()
public static void main(string args)
}
如
button2.addactionlistener(
new actionlistener()
});
再如:
public class outerclass
}; /* 注意:分號不能省 */
}public static void main(string args)
}inte***ce innerclass
----------------
output:
是不是都不知道那個是匿名內部類了,為啥叫匿名內部類,因為他都沒有名字。。。
再看看特點:
關鍵字static中提到static可以修飾成員變數、方法、**塊,其他它還可以修飾內部類,使用static修飾的內部類我們稱之為靜態內部類
靜態內部類與非靜態內部類之間存在乙個最大的區別:
我們知道非靜態內部類在編譯完成之後會隱含地儲存著乙個引用,該引用是指向建立它的外圍內,但是靜態內部類卻沒有
特點:
public class outerclass
}/**
* 非靜態內部類
*/class innerclass2
}/**
* @desc 外圍類方法
* @author chenssy
* @data 2013-10-25
* @return void
*/public void display()
public static void main(string args)
}----------------
output:
chenssy_static
outclass name :chenssy
chenssy_inner
outerclass name:chenssy
Java內部類之靜態內部類
靜態內部類 巢狀內部類 內部類定義時加上static關鍵字。可以使用public protected default private修飾符。只可以訪問外部類的靜態成員和靜態方法,包括了私有的靜態成員和方法。生成靜態內部類物件的方式為 outerclass.innerclass innerobj ne...
java基礎 內部類
一 內部類 將乙個類定義在另乙個類的裡面,對裡面那個類就稱為內部類 內建類,巢狀類 非static內部類可以直接訪問外部類中的成員,包括私有成員。原因 因為內部類中持有了乙個外部類的引用,引用的格式為 外部類名.this 非靜態內部類不能定義static成員 1 內部類定義在外部類的成員位置上 方法...
java基礎《內部類》
一 內部類的訪問規則 1.內部類可以直接訪問外部類中的成員,包括私有 之所以可以直接訪問外部類中的成員,是因為內部類中持有了乙個外部類的引用 格式 外部類名.this 2.外部類要訪問內部類,必須建立內部類物件 訪問格式 1.當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中,可以直接...