`
ribishuangba
  • 浏览: 291096 次
文章分类
社区版块
存档分类
最新评论

嵌套/内部类型

 
阅读更多

public class A

{

public static class B {..}

public class C {..}

...

}

classB, class C 是嵌套/内部类型。那天有人问道:为什么会有嵌套/内部类型?

今天读到一篇文章,觉得是比较好的解释嵌套类型应用场景:

1. 嵌套类型需要访问被嵌套类型的私有方法

2. 避免嵌套类型“污染”命名空间

A good guideline for deciding when to use nested class:

Given any two classes, apply the following guidelines to decide if you should use nested classes. Use nested classes to organize your classes only if the answer to both questions below is yes:

  1. Is it possible to clearly classify one of the classes as the primary class and the other as a supporting class?
  2. Is the supporting class meaningless if the primary class is removed from the subsystem?
分享到:
评论

相关推荐

    Java精华版 chm Java API、嵌套类和内部类、与时间有关的类Date,DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及Java EE 5.0、Java IO 包中的Decorator模式等

    本Java精华内容深入Java API、嵌套类和内部类、与时间有关的类Date,DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及...

    基于社交网络变量的动机和攻击类型:通过常规统计的互补和嵌套行为类型的例子

    一般参与(内部和外部)的类型包含倾向于相互嵌套而不是互补的类型,从完全融合到纯粹破坏性的外观变化。 这种类型描述了动机气氛(以及随后引起的熟悉度)与言语攻击性之间的联系,而不会降低对论证的敏感性。 ...

    深入讲解C#编程中嵌套类型和匿名类型的定义与使用

    在类或结构内部定义的类型称为嵌套类型。例如: class Container { class Nested { Nested() { } } } 不管外部类型是类还是结构,嵌套类型均默认为 private,但是可以设置为 public、protected internal、...

    react-dnd-nested:react-dnd 嵌套使用详解

    read-dnd 嵌套使用 不做具体react-dnd的api讲解,如有需要请查看官网文档,描述很清晰。 需求背景 左侧是物料区,各个可以拖拽的小组件 右侧为编辑区,可以将组件拖进去组成页面 右侧编辑区内已拖拽的小组件可以在...

    详细分析内部类的发生内存泄漏的原因

    之所以会发生这种类型的内存泄漏,是因为内部类必须始终能够访问其外部类-并非总是与JVM的计划一起使用。 从简单的嵌套过程到内存不足错误(并可能关闭JVM)是​​一个过程。理解它的最好方法是看它的源码。 步骤1...

    course-java-2:极客大学家庭作业Java 2级

    OOP原则,类,对象,接口,枚举,内部/嵌套/匿名/本地类。 第2课。例外 异常处理的概念,与传统错误处理机制的比较,try-catch-finally块,异常类型,Java中的标准异常及其作用,从方法中抛出异常。 第3课。收藏 ...

    C++编程思想

    命名控制 157<br/>9.1 来自C语言中的静态成员 157<br/>9.1.1 函数内部的静态变量 157<br/>9.1.2 控制连接 160<br/>9.1.3 其他的存储类型指定符 161<br/>9.2 名字空间 161<br/>9.2.1 产生一个名字空间 162<br/>9.2.2 ...

    c++.编程思想

    命名控制 157<br/>9.1 来自C语言中的静态成员 157<br/>9.1.1 函数内部的静态变量 157<br/>9.1.2 控制连接 160<br/>9.1.3 其他的存储类型指定符 161<br/>9.2 名字空间 161<br/>9.2.1 产生一个名字空间 162<br/>9.2.2 ...

    C++编程思想 pdf

    29<br/>2.5 基本对象 30<br/>2.6 什么是对象 34<br/>2.7 抽象数据类型 35<br/>2.8 对象细节 35<br/>2.9 头文件形式 36<br/>2.10 嵌套结构 37<br/>2.11 小结 41<br/>2.12 练习 41<br/>第3章 隐藏实现 42<br/>3.1 设置...

    GenericModel:Objective-C Model、JSON、NSDictionary互相转换简单高效的轻量级框架,支持model嵌套model

    GenericModel 支持Objective-C Model、NSDictionary、JSON之间互相转换,框架非常简单高效,内部对反射过的model设置有缓存,用Objective-C中的Protocol限定NSArray,NSDictionary等容器类的类型,防止容器类型变量...

    (超赞)JAVA精华之--深入JAVA API

    1.2 深入理解嵌套类和内部类 1.2.1 什么是嵌套类及内部类? 1.2.2 静态嵌套类 1.2.3 在外部类中定义内部类 1.2.4 在方法中定义内部类 1.2.5 匿名内部类 1.2.6 内部类使用的其它的问题 1.3 文件和流 1.3.1 什么是数据...

    Python List列表对象内置方法实例详解

    本文实例讲述了Python List列表对象内置方法。分享给大家供大家参考,具体如下: 前言 在上一篇中介绍了Python的序列...可以任意的嵌套、伸长、异构、为可变数据类型,支持原处修改列表内部元素的引用。 修改列表的元素

    JAVA SE学习精华集锦

    1.2 深入理解嵌套类和内部类 47 1.2.1 什么是嵌套类及内部类? 47 1.2.2 静态嵌套类 48 1.2.3 在外部类中定义内部类 48 1.2.4 在方法中定义内部类 49 1.2.5 匿名内部类 49 1.2.6 内部类使用的其它的问题 50 1.3 文件...

    python浅拷贝、深拷贝

    换句话说,浅拷贝只复制了对象的第一层元素,而没有递归复制其内部嵌套的对象。因此,当修改原始对象的内部元素时,浅拷贝对象也会受到影响。 深拷贝:深拷贝是创建一个完全独立的新对象,该对象及其内部元素都是...

    操作系统实验指导

    通常,C声明和定义可以在全局命名环境内部引入自己的嵌套命名域(用于函数声明和定义的函数内部代码段,等等)。 每个接口类型引入一个命名域,用于保存接口的指令或事件。这种命名域是嵌套于全局命名环境的,所以...

    Oracle.Database.11g.PL_SQL.Programming

     ·定义和部署varray 、嵌套表和联合数组数据类型;  ·处理外部例程、对象类型、大对象和安全文件;  ·使用DBMS_ALERT 和DBMS_PIPE 在并行会话间通信;  ·通过Oracle Net Services 和PL/SQL 包装器调用外部...

    免费开源-jOOQ 是用 Java 编写 SQL 的最佳方式

    jOOQ 是一个内部 DSL 和源代码生成器,将 SQL 语言建模为类型安全的 Java API,以帮助您编写更好的 SQL。 其主要特点包括: 源代码生成器 用于类型安全查询构造和动态 SQL的 DSL API 次要特征包括: DAO 数据导出...

    go-apperror:对具有错误代码,消息,嵌套错误,附加数据等的应用程序执行错误实现。

    该程序包提供一个Error接口和一个apperror.Err实现,以在内部以及可能的公共前端提供丰富的错误。 当然,Error接口实现了go Error接口,因此您始终可以在需要时将use应用程序错误用作普通错误。 错误可以包含以下...

    PLSQL高级编程资料

    5.3.3 内部 LOB 的函数和过程5.3.4 内部 LOB 的函数和过程的应用举例 5.3.5 临时 LOB 第六章 管理事务和锁定 6.1 事务 6.2 锁定 第七章 动态 SQL 7.1 DBMS_SQL 程序包 7.2 本机动态SQL 7.2.1 执行 DDL 语句 7.2.2 ...

    minicC语言的解释器源代码

    8 支持系统内部定义数据类型,但不支持用户在脚本中自定义数据类型. 9 支持行注释符//及段注释符/*...*/ 10. 支持通过include加载其它源文件。 11. 支持各种条件运算符 || && 12. 支持各种逻辑运算及位操作符: +...

Global site tag (gtag.js) - Google Analytics