静态内部类 demo1
public class StaticInnerClassTest
{
public static void main(String[] args)
{
StaticInner.Inner inner = new StaticInner.Inner();
inner.test();
}
}
class StaticInner
{
private static int a = 4; // 如果这行把static修饰符去掉会报错 ,因为静态内部类 只能访问静态的
public static class Inner
{
public void test()
{
System.out.println(a);
}
}
}
成员内部类
public class MemberInnerClassTest
{
public static void main(String[] args)
{
MemberInner.Inner2 inner = new MemberInner().new Inner2();
inner.doSomething();
}
}
class MemberInner
{
private int a = 4;
public class Inner2
{
public void doSomething()
{
System.out.println("hello world");
}
}
}
成员内部类(member inner class) : 可以访问 外部类 的静态方法与非静态方法与成员变量 。生成成员内部类的方式为:
OuterClass.InnerClass inner = new OuterClass() new InnerClass();
若想在成员内部类中访问外部类的成员变量,语法为:
OuterClass.this.a;
局部内部类 是定义在方法里面的内部类。
局部内部类在方法外面不可访问。
局部内部类只能使用方法里面被final修饰符修饰的属性 。
例如:
public void doSomething()
{
final int a = 4 ; //如果此处把final修饰符去掉将会报错
class Inner
{
public void test()
{
System.out.println(a);
}
}
}
匿名内部类 :匿名内部类会隐式 得继承一个父类或实现一个接口。