• java内部类和匿名内部类


    内部类即是包含在类里面的又一个类.

    java内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类 。

    内部类的共性

    (1)、内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 。
    (2)、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的 。
    (3)、内部类声明成静态的,就不能随便的访问外部类的成员变量了,此时内部类只能访问外部类的静态成员变量 。

    成员内部类

    1 class Outer {
    2   class Inner{
    3   }
    4 }

    成员内部类当要生成对象时,必须先生成外部类的对象,然后再通过外部类引用内部类:

    编译上述代码会产生两个文件:Outer.class和Outer$Inner.class。
     

    方法内部类

    把类放在方法内
    1 class Outer {
    2   public void doSomething(){
    3     class Inner{
    4       public void seeOuter(){
    5       }
    6     }
    7   }
    8 }

     

    (1)、方法内部类只能在定义该内部类的方法内实例化,不可以在此方法外对其实例化。
    (2)、方法内部类对象不能使用该内部类所在方法的非final局部变量
    因为方法的局部变量位于栈上,只存在于该方法的生命期内。当一个方法结束,其栈结构被删除,局部变量成为历史。但是该方法结束之后,在方法内创建的内部类对象可能仍然存在于堆中!例如,如果对它的引用被传递到其他某些代码,并存储在一个成员变量内。正因为不能保证局部变量的存活期和方法内部类对象的一样长,所以内部类对象不能使用它们。
     
     
     匿名内部类:
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    Windows Phone开发(29):隔离存储C 转:http://blog.csdn.net/tcjiaan/article/details/7447469
    Windows Phone开发(25):启动器与选择器之WebBrowserTask 转:http://blog.csdn.net/tcjiaan/article/details/7404770
    内存知识集
    牛人榜
    如何解决SQL Server 2000 中的连接问题(邹建)
    索引
    .net事件机制
    内核对象
    使用socket tcp实现通讯
    sql技巧
  • 原文地址:https://www.cnblogs.com/livterjava/p/4716693.html
Copyright © 2020-2023  润新知