【问题标题】:Java usage and point of Inner Classes [duplicate]Java的使用和内部类的要点[重复]
【发布时间】:2017-10-06 12:16:38
【问题描述】:

我正在尝试学习 java,但我遇到了我已经尝试理解了几天的障碍,但我就是不明白我在 yt 上搜索了视频,但找不到我会理解的正确解释.

我的问题是内部类的意义和解释每种内部类的用途,例如匿名、本地内部......

我听到有人说它对封装有好处,这是否意味着访问类并不容易,并且如果我想创建具有相同名称的普通类,还有命名空间?另外,如果我只需要在其他类中单独使用类,那么我只是创建内部?我应该只在我需要不止一次的时候上普通课吗?通常我不知道什么时候应该使用它,我得到了语法和所有我看不到它的意义,为什么我应该使用它而不是普通类。

【问题讨论】:

标签: java inner-classes


【解决方案1】:

这个问题有点取决于个人意见和偏好。我个人根本不使用本地内部类

这一切都围绕着你,程序员,喜欢如何设计你的架构除了可访问性,没有直接的利弊。


我想说匿名类的意义在于快速在您的代码中的单个位置提供一个简单的实现。如果您需要重用 匿名类或开始创建复杂 匿名类,我建议创建一个普通班代替。

类似于本地内部类。如果您有一个大项目,例如有多个贡献者,并且您需要一个小型 辅助类来实现您当前的类,它们会很有用。但是,如果辅助类可能对其他人有用或者如果您再次需要它,则应该使用常规类 /strong> 稍后。但如果不是这种情况,并且它纯粹是该类的辅助类,您确实可以将其创建为本地内部类


匿名类的常用示例:

WindowAdapter adapter = new WindowAdapter() {
    @Override
    public void windowCloses(WindowEvent e) {
        doSomething();
    }
}

如果你只是想在窗口关闭时调用一个方法,不需要创建一个新的常规类。

【讨论】:

  • 也许你有任何内部类使用的程序示例?
  • 没什么常见的。通常我会在那里看到一些小的容器/包装类。只是为了存储一些值。例如,Java API 在Map 中有类Entry。或者LinkedList 也有一个Entry 类。它里面还有一些特殊的Iterator 类。但在那种情况下,我宁愿为LinkedList 创建一个包,并将所有内容作为常规类存储在那里。但我认为他们希望保持一切紧凑和清晰,因此 java.util 然后直接所有类都没有子包。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
  • 2021-11-28
  • 2020-05-22
  • 2010-11-24
相关资源
最近更新 更多