当我们尝试在 java 中实例化一个内部类(又名:非静态嵌套类)时,假设我们在两种情况下这样做:
1.在外部类的同一文件中的主要方法中,我们有两个选项:(例如:)
public class Test1
{
class InnerClass
{
}
public static void main(String[] args)
{
InnerClass inner = new Test1().new InnerClass();
}
}
或者 :
public class Test1
{
class InnerClass
{
}
public static void main(String[] args)
{
Test1.InnerClass inner = new Test1().new InnerClass();
}
}
- 在另一个类(比如不同的文件)中,我们只有第二个选项,使用第一个选项需要我们(当然)导入 InnerClass..,
问:你能解释一下为什么我们在第一种情况下(同一个文件中的 main 方法)有第一个选项(不需要任何导入)?
编辑:
我想第一个问题的答案与内部类的核心思想有什么关系。但是然后+Q:
问:内部类不是外部类的常规成员吗,所以如果内部类没有声明为静态(静态嵌套类),那么我认为它是非静态成员,因此是它的引用类型,那为什么我们能够在静态上下文(静态方法)中声明它吗?