如果我有以下类(class)
public class Foo {
public void bar(){
fooBar();
}
private void fooBar(){
System.out.println("text...");
}
}
相反,我也可以做类似的事情
public class Foo {
public void bar() {
new inner().fooBar();
}
private class inner {
private void fooBar() {
System.out.println(" text ...");
}
}
}
什么时候应该使用内部类而不是私有(private)方法?如果功能是特定于 class Foo
的,那么使用内部类是有意义的,但也可以通过只能在类本身。
最佳答案
对于您的示例,您不需要内部类。您的第一个解决方案简单、易读且足够。
内部类在以下情况下很有用:
- 您需要实现一个接口(interface),但不希望外部类实现它。
- 该类可以有多个实例。
- 内部类可以有多个类型。
编辑:每个示例,按要求
- 接口(interface) 可能由内部类实现以实现 Iterator 模式或 Runnable,...
- 内部类的多个实例可能是实现迭代器或内部映射的特殊键类型所必需的,...
- 多种类型的内部类对于策略模式可能是必需的,...
关于java - 私有(private)方法or内部类,该用哪个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18473374/