zoukankan      html  css  js  c++  java
  • java 内部类注意点

    1、只有内部类可以是私有类,而常规类只可以具有包可见性,或公有可见性。

      内部类访问权限修饰符可以为:public、protected、默认、private;(可以用哪些修饰符视具体内部类类型而定)

      常规类访问权限修饰符只能为:public、默认。

    2、除了静态内部类以外,其他内部类中声明的所有静态域都必须是final(即常量)。

    3、除了静态内部类外,其他内部类不能有static方法;静态内部类中的静态方法也只能访问外围类的静态域和静态方法。

    4、局部内部类:

      ---局部内部类不能用public、protected、private访问权限修饰符进行声明,它的作用域限定在声明这个局部类的块中;

      ---局部类不仅能访问包含他们的外部类(可以访问所有的静态和非静态域及方法),还可以访问局部变量,但是, 那些局部变量必须事实上为final。(jdk8以前必须显示声明为final, jdk8以后可以不显示声明为final)

    5、匿名内部类:

      ---可以访问包含它的外部类的所有域和方法(静态的及非静态的);

      ---匿名内部类不能有构造器,取而代之的是,将构造器参数传递给超类构造器;特别地,若内部类是在实现接口,则不能有构造器参数。

    6、静态内部类:

      ---一般用于内部类不需要访问外围类对象,而只是为了把一个类隐藏在另一个类的内部的情况下;

      ---若内部类对象是在静态方法中构造的,则只能使用静态内部类;

      ---静态内部类不能访问外围类对象,即不能访问外围类的非静态域和非静态方法,但可以访问外围类的静态域和静态方法;

      ---与常规内部类不同,静态内部类可以有静态域和静态方法;

      ---声明在接口中的内部类会自动成为static和public类。

  • 相关阅读:
    Android Lock Screen Orientation
    android studio修改新项目package名称
    DevExpress控件GridView挂下拉控件无法对上值
    Datawindow.net+access数据窗口制作方法
    LR11中web_save_timestamp_param
    LR自带网站飞机订票系统 启动
    MySQL ODBC驱动安装和配置数据源
    【笔记】LR配置ODBC连接数据库进行参数化(mysql )未完待续
    【笔记】LR录制方式和常用函数
    【笔记】http1.1支持的7种请求方法
  • 原文地址:https://www.cnblogs.com/zhangyu-720/p/9956980.html
Copyright © 2011-2022 走看看