1、通过内部类调用外部类中的私有属性
1 class Outer{ 2 private String info = "hello"; 3 class Inner{ 4 public void print(){ 5 System.out.println(info); 6 } 7 } 8 public void fun(){ 9 new Inner().print(); 10 } 11 } 12 13 public class InnerClassDemo01 { 14 15 public static void main(String[] args) { 16 new Outer().fun(); 17 } 18 19 }
2、用static声明的内部类变成了外部类,但是用static声明的内部类不能访问非static的外部类属性:
1 class Outer{ 2 private static String info = "hello"; 3 static class Inner{ 4 public void print(){ 5 System.out.println(info); 6 } 7 } 8 } 9 10 public class InnerClassDemo01 { 11 12 public static void main(String[] args) { 13 new Outer.Inner().print(); 14 } 15 }
3、在方法中定义内部类:在方法中定义的内部类不能直接访问方法中的参数,如果方法中的参数想要被内部类访问,则参数前面必须加上final关键字:
1 class Outer{ 2 private static String info = "hello"; 3 public void fun(final int temp){ 4 class Inner{ 5 public void print(){ 6 System.out.println(info); 7 System.out.println(temp); 8 } 9 } 10 new Inner().print(); 11 } 12 } 13 14 public class InnerClassDemo01 { 15 16 public static void main(String[] args) { 17 new Outer().fun(30); 18 } 19 }