内部类概述:
public class Outer {
private int num=10;
public class Inter {
public void show() {
System.out.println(num);
}
}
public void method() {
Inter i=new Inter();
i.show();
}
}
匿名内部类:
public interface Inter {
void show();
}
public class Outer {
public void methed() {
//多次调用的写法如下
Inter i=new Inter(){
@Override
public void show() {
System.out.println("匿名内部类");
}
};
i.show();
i.show();
i.show();
}
}
public class OuterDemo {
public static void main(String[] args) {
Outer o=new Outer();
o.methed();
}
}
局部内部类:
public class Outer {
private int num=10;
public void method(){
int num2=20;
class Inner{
public void show() {
System.out.println(num);
System.out.println(num2);
}
}
Inner i=new Inner();
i.show();
}
}
public class OuterDemo {
public static void main(String[] args) {
Outer o=new Outer();
o.method();
}
}
成员内部类:
public class Outer {
private int num =10;
private class Inter{
public void show() {
System.out.println(num);
}
}
public void method() {
Inter i=new Inter();
i.show();
}
}
public class InterDemo {
public static void main(String[] args) {
//创建内部类对象,并调用方法
Outer.Inter oi=new Outer().new Inter();
oi.show();
Outer o=new Outer();
o.method();
}
}