内部类就是在一个类的内部定义的类,内部类中不能定义静态成员。

内部类作为其外部类的一个成员,因此内部类可以直接访问外部类的成员。但有一点需要指出:静态成员不能访问非静态成员,因此静态内部类不能访问外部类的非静态成员。

如果内部类使用了static修饰,那这个内部类就是静态内部类,也就是所谓的static Nested Class;如果内部类没有使用修饰,它就是Inner Class。除此之外,还有一种局部内部类:在方法中定义的内部类就是局部内部类,局部内部类只在方法中有效。

对于Static Nested Class来说,它使用了static修饰,因此它属于类成员,Static Nested Class的实例只要寄生在外部类中即可。因此使用Static Nested Class十分方便,开发者可以把外部类当成Static Nested Class的一个包即可。

对于Inner Class而言,它是属于实例成员,因此Inner Class的实例必须寄生在外部类的实例中,因此程序在创建Inner Class实例之前,必须先获得一个它所寄生的外部类的实例。否则程序无法创建Inner Class的实例。例如如下代码:

class Outer

{

class Inner

{

}

}

public class Test

{

public static void main(String[] args)

{

Outer.Inner inner;

Outer outer = new Outer();

// 必须先获得外部类的实例,然后才能调用构造器。

inner = outer.new Inner();

}

}

最新文章

  1. Android中ListView动态加载数据
  2. windbg学习---.browse打开一个新的command 窗口
  3. 转:亿级Web系统的高容错性实践(好博文)
  4. 循序渐进开发WinForm项目(6)--开发使用混合式Winform模块
  5. 关于IE7 默认有边框的解决方案
  6. Python3中的新特性(1)——新的语言特性
  7. hdu 5443 The Water Problem 线段树
  8. matlab初学者_脚本文件调用函数文件
  9. HAProxy、Nginx 配置 HTTP/2 完整指南
  10. Socket 理解
  11. 集成Mybatis
  12. Java 8时间和日期API 20例
  13. PAT1035: Password
  14. figure 的使用
  15. 【json】与【枚举】的序列化和反序列化
  16. (1)Microsoft office Word 2013版本操作入门_常用功能区
  17. 拖拽控件java版
  18. bzoj千题计划277:bzoj4513: [Sdoi2016]储能表
  19. .gitkeep
  20. django之创建第4-2个项目-访问class类属性和类方法

热门文章

  1. HBase学习记录-API
  2. [数据生成器]UVA10054 The Necklace
  3. 业务人员可以进行自助ETL操作?这款BI工具你值得拥有
  4. 使用lrzsz在windows、Linux之间互传文件
  5. idea教程--如何使用码云管理代码
  6. UnboundLocalError: local variable ‘xxx‘ referenced before assignment
  7. CNN(卷积神经网络)入门
  8. application.properties文件常用配置
  9. tp5 商城模型id详情接口
  10. php 23种设计模式 - 命令模式