成员内部类编译生成的class文件

image.png

成员内部类代码示例

  1. public class Teacher {
  2. //成员变量
  3. private String teacherName;
  4. public Teacher() { }
  5. public Teacher(String teacherName) {
  6. this.teacherName = teacherName;
  7. }
  8. //成员内部类
  9. //可以继承和实现接口
  10. class Inner extends Object implements Cloneable {
  11. private String name;
  12. 不能有静态成员
  13. //private static int age = 10;
  14. public Inner(String name) {
  15. this.name = name;
  16. }
  17. public void showTeacherInfo(String name) {
  18. System.out.println("传入 name = " + name);
  19. System.out.println("内部成员变量 name = " + this.name);
  20. System.out.println("外部成员变量 name = " + Teacher.this.teacherName);
  21. }
  22. }
  23. public static void main(String[] args) {
  24. //创建外部类对象
  25. Teacher teacher = new Teacher("形参1");
  26. //通过外部类对象创建内部类对象
  27. Teacher.Inner inner = teacher.new Inner("内部类");
  28. inner.showTeacherInfo("形参");
  29. }
  30. }