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

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

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

  • 相关阅读:
    css 定位
    css inline忽略宽和高
    css clear属性
    关系型数据库与nosql
    链接标签<a>的css定义规则
    1em=16px
    text-align的justify属性
    2393Cirno的完美算数教室 容斥
    bzoj4665小w的喜糖 dp+容斥
    bzoj4558[JLoi2016]方 容斥+count
  • 原文地址:https://www.cnblogs.com/cn-boya/p/10794119.html
Copyright © 2011-2022 走看看