blyang 你长的很好看啊~
Java内部类
发表于: | 分类: Java | 评论:0 | 阅读: 506

Java内部类,简而言之就是一个类定义在另一个类的内部


说明

一般内部类直接供给当前类使用,而其他类一般用不到这个内部类。

内部类提供了更好的封装,只能让外部类直接访问,不允许同一个包中的其他类直接访问。

内部类可以直接访问外部类的私有属性,内部类被当成是其外部类的成员,但是外部类不能访问内部类的内部属性,内部类中定义的属性为局部变量。

通常,某一部分功能在只为外部类提供服务的情况下,可以定义为内部类。

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


成员内部类

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


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

  • 寄存在一个外部类当中,类似于一个成员变量,从属于外部类的一个对象,故使用时必须对外部类进行实例化
  • 在静态内部类当中可以使用外部类的成员,但是外部类不能直接访问非静态内部类的成员
  • 非静态内部类当中不能有静态方法、静态属性、静态初始化块


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

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


匿名内部类:一般用于键盘监听器中,声明周期只有一次,直接new出来,而不需要实例化。

评论已关闭

TOP