![]() |
1
3
嵌套类/内部类只是一个仅在另一个类的上下文中专门使用的类,该类没有自己的类文件。如果它链接到实例,则只能在父类实例的上下文中进行实例化;如果它是静态类,则只能看到私有数据,如果它是静态类,则只能看到私有静态数据。 Java开发者站点有一个嵌套类教程,有一个例子: http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html 几个使用示例:
(想到类似hibernate的工具的数据库会话):假设您有一个会话接口和一个sessionFactory,它返回一个会话实例。实现会话接口的sessionimpl具体类可以是工厂的内部类,它知道如何构造和初始化会话接口。
在Wicket Web框架中,每个GUI组件都有一个关联的“模型”,其任务是将数据连接到组件。界面看起来像:
假设您有一些特殊的逻辑来检索您所编写的自定义GUI组件的数据。由于没有其他组件以相同的方式检索数据,因此可以在提供IModel的地方使用匿名类来处理数据检索。如果在同一个类中有另一个点需要重用IModel实现,则可以将其作为内部类。稍后,如果您在其他地方需要该模型,可以将其转换为顶级类。 通常,在需要类定义的情况下使用内部类,但该类只在父类的上下文中可用或有意义。 |
![]() |
2
3
我对嵌套类的实际使用是在全局设置对象中。 父类是一个单独的类,嵌套类作为设置类别。
将内部对象作为单独的类是没有实际意义的,因为它们在设置类范围之外对它们没有用处。 |
![]() |
3
2
我使用嵌套类来封装通常作为带有大量参数的方法进行的算法。我使用具有原始数据的类,并将算法放入嵌套类中的单独文件中(使用分部关键字)。这样,在算法完成后,我可以将该算法及其(工作)数据的属性保存下来。 我知道不使用嵌套类很容易做到这一点,但这感觉是正确的,因为算法是专门为父类构建的。
|
![]() |
John V · 是否存在单元测试无法发现的逻辑/流错误类型? 7 年前 |
![]() |
Beefster · 为什么ANSI颜色转义以“m”而不是“]”结尾? 7 年前 |
![]() |
Guillermo Gutiérrez · STR转换是如何工作的? 7 年前 |
![]() |
RudziankoÅ · 合并排序数组算法 7 年前 |
|
user8852560 · 构造函数中的验证和构造函数冲突 7 年前 |
![]() |
jav974 · 订购产品时寻找最佳价格组合的算法 7 年前 |
![]() |
hippietrail · 确定浮点数中前导零的数量 7 年前 |