内部类
静态内部类
静态内部类在生成对象的时候,不需要事先创建外部类对象
Outer.Inner in = new Outer.Inner();
成员内部类
成员内部类在生成对象的时候,需要事先创建外部类对象。
Outer.Inner in = new Outer().new Inner();
成员内部类在编译完成之后会隐含的保存着一个引用,该引用是指向创建它的外围类。
Class Outer{
T xxx;
Class Inner{
func(){
sout(Outer.this.xxx);
}
}
}
方法内部类
- 无修饰。
- 除了创建这个类的方法可以访问它以外,其他地方均不能访问。
- 不能有静态的变量或方法。
- 方法内部类不可以改变所在方法的形参,只能使用。
匿名内部类 ( 属于方法内部类 )
匿名内部类必须继承一个抽象类或者实现一个接口。
interface ITest{
void test();
}
class A{
public static void main(){
ITest itest ;
itest = new ITest(){
public void test(){
System.out.println("A->main方法->匿名内部类的test函数");
}
};
itest.test();
}
}
网友评论