Java 内部静态类的两种安装方式有什么区别

Java 内部静态类的两种安装方式有什么区别,java,Java,我使用的是静态内部类,我看到我们可以实例化对象Pc,就像这样。我能得到区别吗?什么时候使用哪个 public class ProducerConsumer { public static void main(String [] args){ PC pc = new PC(); // this ProducerConsumer.PC pc1 = new ProducerConsumer.PC(); // and this } static cla

我使用的是静态内部类,我看到我们可以实例化对象
Pc
,就像这样。我能得到区别吗?什么时候使用哪个

public class ProducerConsumer {


    public static void main(String [] args){
     PC pc = new PC(); // this
     ProducerConsumer.PC pc1 = new ProducerConsumer.PC(); // and this

    }

    static class PC {

    }
}

这些陈述之间没有区别:

  • PC=new PC()
  • ProducerConsumer.PC pc1=新的ProducerConsumer.PC()
  • 您可以使用这两种变体。此外,您可以在其他类中使用变量1,但在这种情况下,您必须将静态导入添加到
    ProducerConsumer


    没有区别。

    第二个是多余的,这是本例中唯一的区别。我认为您需要检查嵌套类主题,没有“静态内部类”这样的东西。根据定义,内部类不是静态的——它是非静态成员类的另一个名称。千万不要在Java中使用“静态内部类”这个短语——正如Erwin在前面的评论中指出的那样,这是自相矛盾的。相反,请参考“静态嵌套类”。讽刺的是,互联网上传播Java中静态内部类概念的最糟糕的来源是StackOverflow!