• 【Java】内部类


    内部类

      定义在类当中的一个类(内部类可以访问外部类当中的成员)

    为什么需要内部类?

      1.增强封装,把内部类隐藏在外部类当中,不允许其他类访问这个类

      2.增加了代码的一个维护性

    内部类可以分为四种

      1.实例内部类

      2.静态内部类

      3.局部内部类

      4.匿名内部类

    (ps:外部类的修饰符只能由两个,public和默认什么都不加)

     实例内部类

      直接定义在类当中的一个类(在类当中没有任何一个修饰符)

    实例内部类的创建(属于对象)

      想要创建内部类,必须要先创建外部类

     例:

      Outter.Inner in = out.new Inner();

     实例内部注意点

      1.想要使用内部类,必须先创建外部类

      2.在内部类当中可以访问外部类当中的成员

      3.在内部类当中,不能有静态的成员

      4.外部类是不能直接访问内部当中的成员

     变量的访问(就近原则)

      1.直接访问是本方法的变量

      2.this访问的是本类的变量

      3.Outter.this.访问的是外部诶的变量

     静态内部类(在内部类前面加上static)

      静态内部类的创建(属于类)

        1.不需要创建外部类对象

       例:Outter.Intter in = new Outter.Inner();

    静态内部类注意点

      1.静态内部类是不需要创建外部对象

      2.在静态内部类当中,是没有外部类引用

      3.静态内部类,是可以访问外部类的静态成员

      4.静态内部类当中可以定义金宝台成员,也可以定义非静态成员

    静态内部类当中访问外部的普通变量

    局部内部类(定义在方法当中的内部类)

      1.不能使用一些修饰 public private

      2.局部内部只能在定义的方法当中使用

      3.局部内部类当中是可以包含局部内部变量,使用的局部变量本质是final

      (如果不是final常量的话,当局部内部类使用了外部类的变量,当局部内部类的方法出帧以后,在堆中大的变量就没有可以指向的地方,变成空指针)

     

     匿名内部类(是一个没有名字的局部内部类)

      只使用一次时;必须要有父类或者接口实现

      

  • 相关阅读:
    es 基于match_phrase/fuzzy的模糊匹配原理及使用
    感谢帮助我的人们
    ps6—如何安装笔刷
    如何下载安装Photoshop cs 6(供新手)
    axure rp 使用心得
    信安协会作业2
    CentOS7下安装Docker
    20181330 王茜《网络对抗技术》 Exp8 Web综合
    20181330 王茜《网络对抗技术》Exp7 网络欺诈防范
    20181330 王茜《网络对抗技术》Exp6 MSF基础应用
  • 原文地址:https://www.cnblogs.com/Cccc4/p/13236390.html
Copyright © 2020-2023  润新知