• 内部类概述


    一、内部类

    1.内部类概述

    2.内部类的四种实现形式

    1.成员内部类

    1. public class Outer {
    2. private int age=99;
    3. public static String a;
    4. //成员内部类
    5. public class Inner{
    6. private int age=88;
    7. private String name;
    8. // public static String school; //jdk 16开始才支持定义静态成员变量
    9. public Inner() {
    10. }
    11. public Inner(String name) {
    12. this.name = name;
    13. }
    14. public String getName() {
    15. return name;
    16. }
    17. public void setName(String name) {
    18. this.name = name;
    19. }
    20. public void test(){
    21. int age=66;
    22. //66
    23. System.out.println (age);
    24. //88
    25. System.out.println (this.age);//只能访问内部类中的属性
    26. //99
    27. System.out.println (Outer.this.age);//通过类名.this 访问外部类的属性
    28. }
    29. public void test2(){//成员内部类可以访问外部类的成员变量
    30. System.out.println (a);
    31. System.out.println (age);
    32. }
    33. }
    34. }

    2.静态内部类

    1. public class Outer {
    2. private int age;
    3. public static String schoolName;
    4. //静态内部类
    5. //类有的东西静态内部类都有
    6. public static class inner{
    7. private String name;
    8. public static int a;
    9. public void test(){
    10. //静态内部类可以直接访问外部类的静态成员变量
    11. System.out.println ( schoolName );
    12. //不能直接访问外部类的成员变量
    13. // System.out.println ( age );
    14. }
    15. public String getName() {
    16. return name;
    17. }
    18. public void setName(String name) {
    19. this.name = name;
    20. }
    21. public static int getA() {
    22. return a;
    23. }
    24. public static void setA(int a) {
    25. inner.a = a;
    26. }
    27. }
    28. public static void test2(){
    29. //静态方法可以直接访问自己类的静态成员变量
    30. System.out.println (schoolName);
    31. //age 是对象的成员变量不能直接去访问
    32. // System.out.println ( age );
    33. }
    34. }

    3.局部内部类

    4.匿名内部类

    1.什么是匿名内部类

    2.匿名内部类在开发中的使用场景

    1. public class Test {
    2. public static void main(String[] args) {
    3. Swimming s1=new Swimming (){
    4. @Override
    5. public void swim() {
    6. System.out.println ("狗游泳");
    7. }
    8. };
    9. go (new Swimming (){
    10. @Override
    11. public void swim() {
    12. System.out.println ("狗游泳");
    13. }
    14. } );
    15. go ( s1 );
    16. }
    17. //设计一个方法,可以接受Swimming接口的一切实现类进来参加游泳比赛
    18. public static void go(Swimming s){
    19. System.out.println ("开始----------------");
    20. s.swim ();
    21. }
    22. }
    23. //猫和狗都要参加游泳比赛
    24. interface Swimming{
    25. void swim();
    26. }

  • 相关阅读:
    gan, pixel2pixel, cyclegan, srgan图像超分辨率
    springSecurity基础(二)连接数据库的登录
    SQL查询本年每月的数据
    SAS基本统计分析语句
    官宣|Apache Flink 1.16 发布公告
    阿里P9大神熬夜整合最全PDF:深入实践Mybatis技术原理与实战
    【nlp】文本处理的基本方法
    Python编程陷阱(五)
    【组成原理-处理器】处理器的相关概念
    【OpenCV-Python】教程:3-15 分水岭图像分割
  • 原文地址:https://blog.csdn.net/m0_64703222/article/details/133810940