1.静态内部类和成员内部类
package outerClass;
public class Text {
private static String s1 = "A";
private String s2 = "B";
private static void m1() {
System.out.println("m1");
}
private void m2() {
System.out.println("m2");
}
static class InnerClass{
public static void m3() {
System.out.println(s1);
m1();
}
public void m4() {
System.out.println(s1);
m1();
}
}
class InnerClass2 {
public void m4() {
System.out.println(s1);
System.out.println(s2);
m1();
m2();
}
}
public static void main(String[] args) {
Text.InnerClass.m3();
InnerClass inner = new InnerClass();
inner.m4();
Text oc = new Text();
InnerClass2 inner2 = oc.new InnerClass2();
inner2.m4();
}
}
2.局部内部类
package outerClass2;
public class Text {
public void m1() {
int i = 10;
class InnerClass{
public void m2() {
System.out.println(i);
}
}
InnerClass inner = new InnerClass();
inner.m2();
}
public static void t(CustomerService cs) {
cs.logout();
}
public static void main(String[] args) {
Text oc = new Text();
oc.m1();
t(new Customer());
t(new CustomerService() {
public void logout() {
System.out.println("退出系统啊哈哈哈");
}
});
}
}
interface CustomerService{
void logout();
}
class Customer implements CustomerService{
public void logout() {
System.out.println("退出系统啊哈哈哈");
}
}