java - 私有(private)方法or内部类,该用哪个

标签 java inner-classes

如果我有以下类(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/

相关文章:

java - 没有编译错误,但代码输出错误(JCreator):

java - 使用 JMX 的多个 Java 应用程序

java - 如何找到数组中唯一不出现两次的数字

java - JPA,实体什么时候必须实现可序列化

java - Android:Activity 和 Fragment 之间的通信

java - 如何使用Gson提取字段

java - 无法调用派生内部类的实例方法

java - 管理泛型外部类及其内部泛型内部类实例化以及声明各自引用的规则是什么?

java - 如何将比较器添加到内部类?

java - 使用 Java 内部类的最佳方式