什么是内部类

image.png

内部类分类

image.png

静态内部类

  • 什么是静态内部类

image.png
image.png

  • 静态内部类注意事项

image.png

成员内部类

  • 什么是成员内部类

image.png
image.png

  • 成员内部类注意事项

image.png
成员内部类即可以访问外部类的静态成员,实例方法中也可以直接访问外部类的实例成员。

局部内部类(鸡肋语法)

image.png

匿名内部类(重点)

  • 什么是匿名内部类以及匿名内部类的特点image.png ```java package com.key.d13_packeg_03.anonymous;

public class test { public static void main(String[] args) { Aminal tiger = new Aminal() { @Override public void run() { System.out.println(“tiger跑得快”); } }; tiger.run(); } }

abstract class Aminal{ public abstract void run(); }

/ class tiger extends Aminal{ @Override public void run() { System.out.println(“tiger跑得快”); } } /

  1. - 匿名内部类常见使用形式
  2. ```java
  3. package com.key.d13_packeg_03.anonymous;
  4. /**
  5. * 掌握内部类的使用形式
  6. */
  7. public class test2 {
  8. public static void main(String[] args) {
  9. Swimming swimming = new Swimming() {
  10. @Override
  11. public void swim() {
  12. System.out.println("学生开始游泳");
  13. }
  14. };
  15. go(swimming);
  16. System.out.println("----------------------");
  17. /*
  18. 也可以用另一种更简单的方法写这段代码
  19. */
  20. //Swimming s1 = ;
  21. go(new Swimming() {
  22. @Override
  23. public void swim() {
  24. System.out.println("老师开始游泳");
  25. }
  26. });
  27. }
  28. /**
  29. * 学生,老师,运动员一起参加游泳比赛
  30. */
  31. //静态方法
  32. public static void go(Swimming swimming){
  33. System.out.println("开始。。。");
  34. swimming.swim();
  35. System.out.println("结束。。。");
  36. }
  37. }
  38. interface Swimming{
  39. public void swim();
  40. }

image.png