关闭

Java语言基础:内部类

13154人阅读 评论(51) 收藏 举报

 

1.  普通内部类
  • 普通内部类的一个最简单的例子:
 
  • 外部类可以访问内部类的私有成员,内部类也可以访问外部类的私有成员:
 
  • 如果外部类的成员变量与内部类的成员变量名字相同,当内部类要访问外部类的该成员时,可以使用“OutClass.this.mem”来区分:
 
  • 要创建普通内部类,必须先创建相应的外部类:
 
也可以用下面的方式:

 
2.  静态内部类
普通内部类前面加上static修饰符,就成为静态内部类,静态内部类类似于C++的嵌套类,与普通内部类相比有如下区别:
  • 静态内部类没有指向外部类的引用,外部类对于它来说更像一个名字空间。
  • 普通内部类不能有静态成员,静态方法,或另一个静态内部类;而静态内部类可以有这一切。
  • 静态内部类可以直接创建,不必先创建外部类:
 
从上面描述可以看出,静态内部类与一般类没有太大区别,只不过它是放在一个类的里面,这个类相当于它的名字空间,可以防止命名冲突。
3.  局部内部类
Java可以把一个类定义在一个方法里面,甚至是一个{}块里面,它的作用域就在这个块里面:
 
 
局部内部类的一般用途是实现某个接口,并作为这个接口传出方法被使用:
 
 
4.  匿名内部类
匿名内部类的语法如下:
 
 
 
它被认为是InterfaceName的实现者,或是SuperclassName的继承类,匿名内部类没有构建函数,如果SuperclassName有带参数的构造函数,必须在创建匿名内部类时带上这些参数,下面是匿名内部类最常见的使用场合:
 
 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:312943次
    • 积分:4095
    • 等级:
    • 排名:第7834名
    • 原创:72篇
    • 转载:0篇
    • 译文:0篇
    • 评论:396条
    文章分类
    最新评论