class A
{
public void func()
{
A a=new A();
C c=a.new C();
} public static void main(String[] args)
{
A a=new A(); C c=a.new C(); //实例内部类访问需要【外部类名对象.内部类对象】,所以要两个new,可以理解为静态内部类衣着于外部类实例上的
c=new A().new C(); B b=new A.B(); //静态内部类访问需要【外部类名.静态内部类对象】,所以一个new,可以理解为静态内部类依着于外部类上
} static class B
{ } class C
{ } }
相关文章
- Java中同步和异步的区别是什么?优点缺点以及概念理解
- Java - 你如何理解AOP中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念?
- Java中 ? extends T 和 ? super T 的理解
- Java中对List集合内的元素进行顺序、倒序、随机排序的示例代码
- java中的内部类与使用场景
- 关于java中位运算符的使用和理解
- Java中static(静态变量/方法)的优缺点
- Java中内部类揭秘(一):外部类与非静态内部类的”相互可见性“
- JAVA中静态方法的调用
- java中匿名内部类的应用