在「基於java內部類別作用的深入分析」中你可以了解java內部類別的一些東西,不過內部類別中還有一些地方值得我們細心研究...
以下是我總結出來的java內部類別的一些東西,分享給大夥兒....
one:靜態內部類別可以有靜態成員,而非靜態內部類別則不能有靜態成員
怎樣理解這個呢?
看看下面的程式碼:
public class Test {
private int number = 1;
// 非靜態內部類別可以有非靜態成員
private class InnerTest {
// error 非靜態內部類別不能有靜態成員
// private static int inNumber = 2;
private int inNumber = 2;
public InnerTest() {
setNumber(2);
inNumber = inNumber + number;
System.out.println("innerTest---" + inNumber);
}
}
// Test的私有方法
private void setNumber(int number) {
this.number = number;
}
// 建構函式
public Test() {
InnerTest in = new InnerTest();
System.out.println("test");
}
public static void main(String[] args) {
Test test = new Test();
// innerTest---4
// test
}
}
public class Test {
private static int number = 1;
private String name = "test";
// 靜態內部類別
private static class InnerTest {
// 靜態內部類別可以有非靜態成員
private int inNumber = 2;
public InnerTest() {
//靜態內部類別可以存取外部類別的靜態成員
setNumber(2);
inNumber = inNumber + number;
System.out.println("innerTest---" + inNumber);
//error 靜態內部類別不可以存取外部類別的非靜態成員
//System.out.println(name);
}
}
// Test的靜態私有方法
private static void setNumber(int n) {
number = n;
}
// 建構函式
public Test() {
InnerTest in = new InnerTest();
System.out.println("test");
}
public static void main(String[] args) {
Test test = new Test();
// innerTest---4
// test
}
}
是不是很好理解....
總結一下: