你可以这样说:
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