你可以這樣說:
public class Example {
public static class InnerClass {
}
}
聲明的類一樣,你可以這樣引用它們之後:
Example.InnerClass someInstance = new Example.InnerClass();
但通知static
修改的InnerClass
的?在這種情況下,static
意味着InnerClass
的行爲就像它在自己的文件中定義的一樣。 InnerClass
與static
無法訪問任何成員Example
或調用Example
任何非靜態方法,所以這樣的事情是不可能的:
public class Example {
private String someMember;
private void someMethod() {
}
public static class InnerClass {
public InnerClass() {
// Not possible, would throw a compile time error
doSomething(someMember);
someMethod();
}
}
}
如果不申報InnerClass
靜態比它實質上成爲一部分Example
一個不能獨立存在。換句話說,如果你沒有聲明它是靜態的,你總是首先需要一個Example
實例,在這種情況下,你可以創建InnerClass
對象。但是不帶靜電有可能從Example
訪問Example
或調用方法的成員:
public class Example {
private String someMember;
private void someMethod() {
}
public class InnerClass {
public InnerClass() {
// This is now possible. But you cannot create
// an independent `InnerClass` instance anymore
doSomething(someMember);
someMethod();
}
}
}
你正在尋找一個[靜態內部類(http://docs.oracle.com/javase/tutorial/java /javaOO/nested.html)? – TheLostMind 2014-09-29 08:47:45
我可以不碰靜電嗎? – xea21 2014-09-29 08:49:26
我不明白你的意思。 – TheLostMind 2014-09-29 08:50:26