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类。

  • 相关阅读:
    evernote100个做笔记的好方法
    平衡二叉树的调整模版
    晨间日记的奇迹
    hdu 2952 Counting Sheep
    hdu 1535 Invitation Cards
    poj 3259 Wormholes(spfa)
    poj 2263 Heavy Cargo(floyd)
    poj 3268 Silver Cow Party(SPFA)
    hdu 1690 Bus System
    hdu 3631 Shortest Path(Floyd)
  • 原文地址:https://www.cnblogs.com/zhangyu-720/p/9956980.html
Copyright © 2011-2022 走看看