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

    什么是内部类?

    在一个类(A)中嵌套着另一个类(B)那么B就是A的内部类;

      1 public class Text1 {
      2        String name;
      3  public class text2{
      4         public void SetName(){
      5                name="123";
      6         }
      7  }
      8 }
    内部类的定义

    内部类的特点

    内部类会自动保存外部类的应用。内部类可以直接访问内部类的成员

    内部类的作用域:

    内部类按照作用域可以进行如下分类

    image

    而上面《内部类的定义》中就是定义一个实例内部类静态内部类只需在Class关键字前面加一个Static关键字即可。

    静态内部类不必须持有外部类的实例的引用

    局部内部类就是在外部类的方法中定义内部类。局部内部类不能有访问修饰符

      1 public class Text1 {
      2        String name;
      3  public void txt()
      4   {
      5       class text2{
      6         public void SetName(){
      7                name="123";
      8         }
      9   }
     10  }
     11 }
    局部内部类的定义

    局部内部类只在定义它的方法中有效。它还可以访问方法中定义的局部成员及参数

    内部类的使用

    在使用实例内部类之前必须先创建出它的外部类的实例

      1 Text1 t=new Text1();
      2 Text1.text2 t=t.new text2();
      3 
    局部内部类的调用

    而静态内部类在使用前则不必先创建它的外部类的实例

      1 Text1.text2 t=new text1.text2();
      2 
    静态内部类的调用

    比较实例内部类、静态内部类和局部内部类

    image

    内部类的继承:

    当一个类(A)继承另一个类(B)的内部类(C)时该类必须自动引用另一个类(B)的实例

    其引用关系如下:

    A——》C——》B

    内部类的用途:

    封装

    将外部类的实现封装成内部类对外只提供少量接口(方法)

  • 相关阅读:
    第36课 经典问题解析三
    第35课 函数对象分析
    67. Add Binary
    66. Plus One
    58. Length of Last Word
    53. Maximum Subarray
    38. Count and Say
    35. Search Insert Position
    28. Implement strStr()
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/wangzheand/p/5400643.html
Copyright © 2011-2022 走看看