• 内部类


    将一个类定义置入另一个类定义中就叫作“内部类”
    特点:内部类作为外部类的成员,可以直接访问外部类的成员(包括private成员),反之则不行。
    内部类做为外部类成员,可声明为private、默认、protected或public。
    内部类成员只有在内部类的范围之内是有效的。
    用内部类定义在外部类中不可访问的属性。这样就在外部类中实现了比外部类的private还要小的访问权限。
    编译后生成两个类: OuterClass.class 和OuterClass$InnerClass.class

    内部类分类:
    成员内部类 静态内部类 方法内部类 匿名内部类
    1.成员内部类
    当内部类的成员和外部类的成员重名的时候,在内部类默认使用内部类的成员
    如果在内部类想要使用外部类的重名成员,需要用 外部类名.this.成员名
    外部类的成员方法可以直接使用内部类
    其他类不能直接访问内部类,只能间接方法,创建外部类的对象,再创建内部类的对象,才能使用内部类
    2.静态内部类
    在内部类前加static 就是静态内部类、如果内部类中的属性或方法是static,则这个内部类必须是static
    静态内部类只能使用外部类的静态成员,不能使用外部类的非静态成员,静态的内容都是属于类所有,可以通过类名直接调用。所以静态的内部类也是属于类所有,可以直接用外部类的类名来调用,来创建对象。
    3.方法内部类
    将内部类定义在外部类的方法中
    方法内部类不能在外部类的方法以外的地方使用,方法内部类不能使用访问控制符和static修饰
    方法内部类如果想使用方法的参数,那么参数前必须加final关键字
    方法中的内部类 只能在方法内使用,出了方法就不能再使用方法中的内部类了,所以要想使用内部类 就必须在方法结束之前使用内部来创建一个对象 ,使用内部类的对象来调用内部类的方法。
    4. 匿名内部类
    没有名字的内部类
    匿名内部类有个前提条件:必须存在继承和实现关系
    适合只需要使用一次的类
    当一个接口的实现类只需要使用一次,这时候可以直接用接口来new对象。接口不能直接创建对象,所以在new对象之前,先将接口实现成一个实现类,再用该实现类去创建对象

  • 相关阅读:
    Android 6.0 运行时权限处理完全解析
    Android 6.0 运行时权限处理
    史上比较用心的纯代码实现 AutoLayout
    hdu 4268 Alice and Bob(multiset|段树)
    在单调的队列
    Python re正则表达式
    minihomepage.exe 百度视频迷你主页
    POJ 2914 Minimum Cut 最小割图论
    移植kl档,但调用默认Generic.kl解决的方法
    iOS 删除黑色边框线导航栏&删除搜索框的阴影边界线和中黑色文本输入框 - 解
  • 原文地址:https://www.cnblogs.com/cn-boya/p/10794119.html
Copyright © 2020-2023  润新知