10.匿名内部类
局部内部类 (构造方法,方法,代码块)
public class Person{
//构造方法内
public Person(){
class A{
}
}
//方法内
public void method(){
int num = 10;
class B{
//在局部内部类的中使用方法内定义的局部变量的话,变量需要定义为final
public void say(){
num = 20;//这会报错,num需定义成final(1.8以后默认定义为final)
System.out.println(num);
}
}
}
//代码块内
{
class C{
}
}
}
成员内部类(静态,非静态)
1.作为成员:
①可是使用四种权限修饰符修饰
②可以使用static关键字修饰
③可以调用外部类结构
2.作为类:
①可以定义类的属性,方法,构造器等
②可以使用final修饰
③可以使用static修饰
3.成员内部类实例化
Person.A a = new Person.A();//实例化静态内部类
Person p = new Person();
Person.B b = p.new B();
public class Person{
private String id;
//静态内部类
static class A(){
}
//非静态内部类
class B(){
private String id;
public void say(String id){
//调用形参的id
System.out.println(id);
//调用内部类的id
System.out.println(this.id);
//调用外部类的id
System.out.println(Person.this.id);
}
}
}
后续~~~