zoukankan      html  css  js  c++  java
  • Java内部类

    一、定义作用

    定义:在一个类中再声明一个类,外面的类叫外部类,里面的类叫内部类或宿主类
    (除了局部内部类)

    【作用】:内部类专门为了管理外部类内容的

    内外部类以及内部类的函数中定义有同名的变量name时

    若要调用外部类的name为:外部类名.this.name
    若要调用内部类的name为:this.name
    内部类函数要调用自己的name,直接使用

    二、内部类分类

    1,成员内部类
    2,静态内部类
    3,局部内部类
    4,匿名内部类

    三、成员内部类

    类似于外部类中的成员属性或成员方法

    • 1 可以用四种访问权限修饰符修饰
    • 2 成员内部类中不能用静态的属性和方法
    • 3 成员内部类中可以添加属性和方法
    • 4 成员内部类可以使用外部类的属性和方法(包括私有的)
    • 5 如果内部类中的属性和外部类中的属性同名(内部类中优先调用的是内部类的属性和方法)

      this 代表的是 内部类对象
      想要调用外部类的属性和方法需要通过外部类对象去调用

    • 6 创建内部类对象

      先创建外部类对象Outer outer = new Outer();
      通过外部类对象.new 内部类(); Outer.Inner inner = outer.new Inner();
      或者Outer.Inner inner = new Outer().new Inner();

    • 7 在其他类中创建内部类对象 【需要导包】

    四、静态内部类

    类似于外部类的静态的属性和方法

    格式:static class 类名

    可以存在静态或者是非静态的属性或者是方法

    内部类属性如果和外部类属性同名了 优先调用的是内部类的

    创建对象:
    * Inner in = new Inner();
    * 也要导包

    创建静态内部类对象
    Inner inner3 = new Inner();
    StaticInner.Inner inner2 = new StaticInner.Inner();

    应用场景: 建造者模式
    内部类中有静态成员,那么内部类必须是静态的

    五、局部内部类(鸡肋,完全没用,了解即可)

    定义:在方法中定义的类
    局部内部类使用了其所在函数的局部变量是,该局部变量必须是final修饰的
    不能用修饰符
    里面只可以出现非静态的属性和方法
    只能在声明该类的方法中去创建对象
    如果想要局部内部类执行 必须调用声明局部内部类的方法

    六、匿名内部类

    应用情景:只想用一次,若是多次最好建一个类
    

    使用匿名内部类的前提条件:

    存在父类或父接口
    匿名内部类适用于不能创建对象的抽象类和接口
    真正创建的是子类的对象 因为子类是匿名的 需要让父类名字代替

    创建方法:
    这里写图片描述

    作用:节省代码量
    
  • 相关阅读:
    织梦精准搜索自定义字段搜索证书查询
    织梦一个标签获取当前链接url(首页/列表页/列表分页/内容页/内容页分页)
    织梦dede:arclist按最新修改排序orderby=pubdate无效的解决方法
    织梦likearticle让mytypeid支持多个栏目和子栏目
    织梦站内选择和文件管理器中文乱码的解决方法(utf8编码程序包才会)
    WPFDispatcher示例
    WPF 核心体系结构
    WPF扩展标记
    WPF 路由事件
    WPF 自定义路由事件
  • 原文地址:https://www.cnblogs.com/TCB-Java/p/6797642.html
Copyright © 2011-2022 走看看