网站大量收购闲置独家精品文档,联系QQ:2885784924

Java内部类(innerclass).docx

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌套类的设计与使用是Java 码农在OOD、OOP中的一件顺手工具, 这一点是毋庸置疑的,但怎样正确使用嵌套类在实际的编程中呢?下文会针对这一话题展开叙述。 什么是嵌套类? 在Java语言的世界里允许在一个类的内部定义类,如下代码所示: class OuterClass { ... class NestedClass { ... } } 术语: 嵌套类分为静态和非静态两类; 声明为static的内部类我们称为“静态嵌套类”,而未声明为static的内部类我们称之为“内部类” class OuterClass { ... static class StaticNestedClass { ... } class InnerClass { ... } } 作为包装类的一个成员, 非静态嵌套类可以有权访问其包装类的成员变量(甚至包括私有变量),然而静态的嵌套类却不可以访问其包装类的任何成员变量。 内部类可以声明为public , protected, package private, private 访问权限。 为什么要使用内部类(什么情况必须使用内部类)? 对只在一处使用的类的逻辑分组 如果一个类A只对一个类B有用,并且逻辑上这个类A能够内嵌到这个类B中,是这两个类放在一起,将这样的“帮助类”B设计为内部类将使包结构更加顺畅,优美。 提升封装性 当类B需要访问类A中必须声明为private的成员变量的时候。如果将类B声明为内部类,这样既可以满足需求而且可以将B声明为private或其他权限将类B隐藏起来。 可读性好,高可维护的代码 将相近的类声明为内部类,使得代码更加符合逻辑,可读性更好,可维护性更好。 静态嵌套类 想要通过静态嵌套类直接访问包装类的成员变量? No Way, 那是内部类(非静态嵌套类)能做的。静态嵌套类只能与其他静态类一样通过拿到引用的方式访问成员变量。既然不能访问包装类的成员变量,为什么要使用内部类呢?为了方便逻辑上类的分包。 静态嵌套类可以通过“包装类.嵌套类”方式访问,如:OuterClass.StaticNestedClass 内部类的对象可以通过“new 包装类.嵌套类()”方式实例化。 内部类(非静态嵌套类) 从实例成员变量和方法的角度来看,由于内部类的存在依赖于包装类的存在,因此内部类中不能定义任何static 的成员。 内部类的实例只能存在于包装类内部,并且???以直接访问包装类内部的方法和变量。如下图所示 基于以上描述的内部类与包装类的关系,需要实例化一个内部类就必须先实例化这个包装类,如:OuterClass.InnerClass innerObject = outerObject.new InnerClass();

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档