public class TestStatic
{
//定义一个非静态的内部类,是一个空类
private class In{}
//外部类的静态方法
public static void main(String[] args)
{
//下面代码引发编译异常,因为静态成员(main方法)无法访问非静态成员(In类)
new In();
}
}[/code]但是你可以在外部类定义一个非静态的方法,在这个方法内部来访问非静态内部类,如下[code=java]package cn.itcast.heima.mythreadtest;
public class Outer
{
private int outProp = 9;
class Inner
{
private int inProp = 5;
public void acessOuterProp()
{
//内部类可以直接访问外部类的成员
System.out.println("外部类的outProp属性值:" + outProp);
}
}
public void accessInnerProp()
{
//外部类不能直接访问内部类属性,下面代码出现编译错误
//System.out.println("内部类的inProp属性值:" + inProp);
//如需访问内部类成员,必须显式创建内部类对象
System.out.println("内部类的inProp属性值:" + new Inner().inProp);