首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >外部文件中的嵌套/内部类

外部文件中的嵌套/内部类
EN

Stack Overflow用户
提问于 2011-06-03 02:29:09
回答 6查看 17.6K关注 0票数 43

我有一个类MyClass和一个内部类MyNestedClass如下所示:

代码语言:javascript
运行
复制
public class MyClass {
  ...
  public class MyNestedClass {
    ...
  }
}

这两个类都很长。正因为如此,我想将它们分开放在两个不同的文件中,而不破坏层次结构。这是因为使用MyClass的程序员不应该看到嵌套的类。

有没有办法做到这一点?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-06-03 02:41:25

您可以将内部类包设置为私有,这意味着它只能从完全相同的包中的其他类访问。对于像java.langjava.util这样的标准JDK包中的隐藏类,这也是相当频繁的。

在pkg/MyClass.java中

代码语言:javascript
运行
复制
public class MyClass {
  ...
}

在pkg/MyHiddenClass.java中

代码语言:javascript
运行
复制
class MyHiddenClass {

  final MyClass outer;

  MyHiddenClass( MyClass outer )
  {
      this.outer = outer;
  }
  ...
}

现在,当您想要访问外部类的方法或变量时,您需要在它们前面加上outer.前缀,但是当编译器综合创建对外部实例的引用时,您将获得与以前相同的功能。

票数 20
EN

Stack Overflow用户

发布于 2011-06-03 02:31:46

不是的。Java源代码不能拆分到多个文件中。您需要一个类似于C#中的分部类的结构,这是Java所没有的。

票数 7
EN

Stack Overflow用户

发布于 2011-06-03 04:33:34

我认为你有一个上帝对象或类似的东西,在重构你的代码时考虑一下

http://en.wikipedia.org/wiki/God_object

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6218722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档