1.尝试在方法中编写一个匿名内部类。
package com.lzw; public class AnonymityInnerClass { } class OuterClass4{ public OutInterface doit(final String s){ return new OutInterface(){ private int i=0; public int getValue(){ System.out.println(s); return i; } public void f(){ System.out.println("f()"); } }; } } interface OutInterface { // 定义一个接口 }
匿名内部类:new OutInterface(){
.......
}写在了外部类Outerclass4的方法中。
2.尝试将主方法编写在静态内部类中。
package com.lzw; public class StaticInnerClass { int x=100; static class Inner{ void doitInner(){ //System.out.println("外部类"+x); } public static void main(String args[]){ System.out.println("a"); } } }
注:静态内部类的最大特征就是不能使用外部类的非静态成员。
3.尝试编写一个静态内部类,在主方法中创建其内部类的实例。
package test; public class StaticInnerClass { static class a{ void f(){ System.out.println("f()"); } } public static void main(String args[]){ StaticInnerClass.a a=new a(); a.f(); } }