1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| * 访问非静态内部类的方法 * 访问外部类的属性 * @author 杜伟 */ public class OutterClass { private String name = "duwei"; public String sex = "man"; private static int age = 15; interface IPrintString{ String print(); }
public String sayOutter() { class PrintString implements IPrintString{ @Override public String print() { return "Outter"; } } return new PrintString().print(); } public String sayOutter2(){ return new IPrintString() { @Override public String print() { return "Outter2"; } }.print(); }
class InnerClass { public void sayInner() { System.out.println("inner:name="+name+",sex="+sex+",age = "+age); System.out.println(OutterClass.this.sayOutter()+";匿名内部类:" +OutterClass.this.sayOutter2()); } }
public static void main(String[] args) { OutterClass outter = new OutterClass(); InnerClass inner = outter.new InnerClass(); inner.sayInner(); } }
|