zoukankan      html  css  js  c++  java
  • 【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常量的话,当局部内部类使用了外部类的变量,当局部内部类的方法出帧以后,在堆中大的变量就没有可以指向的地方,变成空指针)

     

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

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

      

  • 相关阅读:
    Android 捕获异常并在应用崩溃后重启应用
    Android 浏览器 —— 使用 WebView 实现文件下载
    给 Android 研发的一些的建议
    java.util.concurrent.RejectedExecutionException
    java的关闭钩子(Shutdown Hook)
    PGP工作原理及其安全体制
    漫画:什么是红黑树?
    LINUX下IDEA等工具调试项目时提示:Unable to open debugger port
    MongoDB aggregate 运用篇(转)
    Java8系列之重新认识HashMap
  • 原文地址:https://www.cnblogs.com/Cccc4/p/13236390.html
Copyright © 2011-2022 走看看