• java学习阶段一 内部类


    java学习阶段一 内部类

    介绍

    类中可以包含一个类,成为相对的内部类 外部类 实现信息隐藏

    基本知识

    • 成员内部类(普通内部类)

      获取内部类对象实例

      //第一种 外部类名.内部类名 对象名 = new 外部类名().new内部类名(); 
      //第二种 外部类名.内部类名 对象名 = 已存在外部类对象名.内部类名();
      //外部类设置一个获取内部类的方法 调用此方法
      

      内部类访问修饰符和一般类一样使用方法

      内部类可以直接访问外部类的成员

      属性重名 使用 外部类名.this.属性 访问

      方法重名

      外部类访问内部类需要通过内部类实例

    • 静态内部类 (static修饰)

      和成员类区别:

      只能直接访问外部类的静态方法和成员,如果需要调用非静态方法,只能通过实例化外部类对象调用

      静态内部类实例不需要依赖外部类对象

      可以通过 外部类.内部类.静态成员 来访问静态内部类静态成员

      属性与外部类重名时需要访问外部类静态属性 通过 外部类.属性 非静态属性 则 new 外部类().属性

    • 方法内部类 (在方法中的内部类)

      此类作用域在方法中 不能定义静态成员

      和方法内部成员一样不能有访问修饰符

      可以包含final 和abstract

    • 匿名内部类 (隐藏名字)

      使用场景: 对类的实例化只有一次

      //在调用方法的传参中
      new 抽象类或者接口类名(){重写方法}
      

    注意事项

    匿名内部类无法添加修饰符 无法编写构造方法 可以添加构造代码块 不能出现静态成员

    只能有一个方法名 所以此类只能继承或者实现一个接口

  • 相关阅读:
    快速排序理论---不含源码
    归并排序理论---不含源码
    希尔排序(shell)理论---不含源码
    Visual C++中error spawning cl.exe解决办法
    数据库的基础知识点---1
    冒泡排序的基础知识部分(不含源码)
    在虚拟机的Linux系统下安装wineqq
    数据变量的别名
    void*和void类型
    变量的作用域和连接性
  • 原文地址:https://www.cnblogs.com/tigo/p/14409659.html
Copyright © 2020-2023  润新知