zoukankan      html  css  js  c++  java
  • 成员内部类 局部内部类 匿名内部类

    成员内部类:

    成员内部类是在一个类的内部再生成一个类,相当于成员方法一样,所以叫成员内部类

    成员内部类可以访问外部类中的成员,即使成员是privte,跟其它成员权限一样,但是在另一个包中的类想访问这个privte就是不行的,只能在一个包下才能访问

    如果在另个一个包中的一个类,想使用这个内部类,就先需要导入外部类,再导入内部类。之后先生成外部类对象,再在此基础上再生成内部类对象

    当外部类想访问静态内部类时,只需要导包导入静态内部类,然后直接正常new一个即可

    内部类能访问外部类其实是因为,在内部类中有个外部类的引用,这个引用默认是隐藏的。其格式为:外部类名字.this ,在this前加入外部类名字的原因是怕和内部类this冲突

    局部内部类:

    在一个方法里写一个类就叫做局部内部类,局部内部类作用域和方法一样,出了方法就使用不了了,生命周期也是随着方法而存在

    匿名内部类:

    匿名内部类没有名字和构造方法,不能显示继承类和实现接口。下面这个图类b要实现接口,但是AnInterface ait = new AnInterface()这个看起来似乎像一个接口想生成一个接口对象,不过其实不是这个意思,这个new的其实就是匿名内部类。不过用内部类就不用再特意写个类然后实现接口。new后面跟着的不是接口,而是一个没有名字的类,就是内部类,这个内部类实现了接口,最后的分号不能忘掉;匿名内部类在抽象类上也是同理

  • 相关阅读:
    [匈牙利算法] 洛谷 P1640 连续攻击
    [dfs] Jzoj P5916 flow
    [bfs] Jzoj P3522 迷宫花园
    [二分][状压dp] Jzoj P3521 道路覆盖
    [模拟] Jzoj P3520 原根
    [并查集] Jzoj P5914 盟主的忧虑
    [树上差分][子树求和][树形dp] Jzoj P5911 Travel
    [思维][暴力] Jzoj P5912 VanUSee
    [dfs][离散化] Jzoj P5910 DuLiu
    [cdq分治][树的重心] 洛谷 P3806 点分治1
  • 原文地址:https://www.cnblogs.com/yudongxuan/p/11552925.html
Copyright © 2011-2022 走看看