- package com.itheima.preview;
- public class InnerClassDemo1 {
- public static void main(String[] args)
- {
- Outer o = new Outer();
- o.method();
- new Outer().method(); //等于上面,但是匿名的。
-
-
- Outer.show(); //静态调用。
-
-
- Outer.Inner oi = new Outer.Inner(); //Inner类是static的。
- oi.function();
-
- Outer.Inner2 oo = new Outer().new Inner2(); //static是非static的。
-
- /*
- * 问题一:上面这三局代码我怎么理解?
- */
-
- Outer.Inner.function();
- /*问题二:静态内部类的静态调用,可代替上面的语句。
- * 但是,Outer非static的,这么写怎么理解?
- */
-
- new Outer.Inner().function();
-
- Outer.show();
- }
- }
- class Outer
- {
- private int x = 3;
-
- static void show()
- {
- System.out.println("静态成员测试");
- }
-
- static class Inner{
- int x = 6;
- static void function()
- {
- Inner.function(); //静态调用
- }
- }
- class Inner2
- {
- void function()
- {
-
- }
- }
- void method()
- {
- new Outer.Inner().function();
- System.out.println(x);
- Inner i = new Inner();
- i.function();
- }
- }
复制代码 问题在代码注释里,请高手详解。。。。。
|