Java内部类

来源:互联网 发布:js如何转换日期格式 编辑:程序博客网 时间:2024/06/02 02:54
      所谓Java的内部类,简而言之就是一个类放在另外一个类的内部,称之为内部类。

       一般内部类直接供给外部类使用,而其他类一般用不到这个内部类。内部类提供了更好的封装,只能让外部类直接访问,不允许同一个包中的其他类直接访问。内部类可以直接访问外部类的私有属性,内部类被当成是其外部类的成员,但是外部类不能访问内部类的内部属性,内部类中定义的属性为局部变量。通常,某一部分功能在只为外部类提供服务的情况下,可以定义为内部类。

       内部类一般分为两类,分别是成员内部类和匿名内部类(还有一种类是局部内部类,定义在方法中,极少用到,不提)。

       成员内部类中分为非静态内部类和静态内部类。

成员内部类之非静态内部类:

              1、寄存在一个外部类当中,类似于一个成员变量,从属于外部类的一个对象,故使用时必须对外部类进行实例化。

              2、在静态内部类当中可以使用外部类的成员,但是外部类不能直接访问非静态内部类的成员。

              3、非静态内部类当中不能有静态方法、静态属性、静态初始化块。

成员内部类之静态内部类:

              1、可以把它当作是外部类的一个静态成员。

              2、当一个静态内部类对象存在时,并不一定存在对应的外部类对象,因此,静态内部类的实例方法不能直接访问外部类的实例方法。而外部类的方法可以通过“静态内部类.名字”的格式来访问静态内部类的静态成员,通过“new静态内部类()”来访问静态内部类的实例。(当使用static声明时,理论上的内部类就变身成了事实上的外部类

匿名内部类:

              1、一般用于键盘监听器中,声明周期只有一次,直接new出来,而不需要实例化。

0 0
原创粉丝点击