1 package test_13_2; 2 3 public class Outer { 4 5 private String str; 6 7 public Outer() { 8 9 } 10 11 public Outer(String str) { 12 13 this.str = str; 14 } 15 16 class Inner { 17 18 // 内部类不止是一种名字隐藏和组织代码的模式 19 // 当生成一个内部类的对象时,此对象与制造它的外围对象(enclosing object)之间就有了一种联系 20 // 所以它能访问其外围对象的所有成员,而不需要任何特殊条件 21 // 内部类还拥有外部类的所有元素的访问权 22 @Override 23 public String toString() { 24 25 return str; 26 } 27 28 } 29 30 public Inner inner() { 31 32 return new Inner(); 33 } 34 35 public static void main(String[] args) { 36 37 Outer outer = new Outer("this is str"); 38 39 Outer.Inner inner = outer.inner(); 40 System.out.println(inner.toString()); 41 } 42 43 }
结果如下:
this is str