樱桃小猪猪 发表于 2009-1-16 09:43:42

Java

内部类: 在类内部定义的类.
    第一个程序:
    用Test的getWrite()方法访问内部类InnerClass1方法





   package test;
    public class Test ...{
      /**//*
         *Inner Class
         */
         class InnerClass1 ...{
            public void write() ...{
                System.out.println("Hello :"   this.getClass());
            }
      }
         public void getWrite()...{
             InnerClass1 inner1 = new InnerClass1();
             inner1.write();
         }
      public static void main(String[] arg) ...{
            Test test=new Test();
            test.getWrite();
      }
    }   
       第二个程序:
   用Test方法返回 InnerClass 的实例





   package test;
    public class Test2 ...{
      /**//*
         * Inner Class
         */
      class InnerClass1 ...{
            public void write() ...{
                System.out.println("Hello :"   this.getClass());
            }
      }
      public InnerClass1 getWrite() ...{
            return new InnerClass1(); //返回InnerClass1的实例
      }
      public static void main(String[] arg) ...{
            Test2 test = new Test2();
            Test2.InnerClass1 inner =test.getWrite();
            inner.write();

      }
    }   
    第三个程序
    内部类继承父类





package test;
    public class Test3 ...{
      /**//*
         * Inner Class
         */
      class InnerClass1 ...{
            public void write() ...{
                System.out.println("Hello :"   this.getClass());
            }
      }
            class InnerClass2 extends InnerClass1 ...{// 继承InnerClass1
      }
      public InnerClass1 getWrite() ...{
            return new InnerClass1(); // 返回InnerClass1的实例
      }
      public InnerClass2 getWrite2() ...{
            return new InnerClass2(); // 返回InnerClass2的实例
      }
      public static void main(String[] arg) ...{
            Test3 test3=new Test3();
            Test3.InnerClass2 inner2=test3.getWrite2();
            inner2.write();
      }
    }   
   
                  
    第四个程序

    通过.this 生成对外部类的引用



package test;
    import test.Test3.InnerClass1;
    import test.Test3.InnerClass2;
    public class Test4 ...{
      /**//*
         * Inner Class
         */
      class InnerClass1 ...{
            public void write() ...{
                System.out.println("Hello :"   this.getClass());
            }
            public Test4 getOuter()...{
                return Test4.this;//通过.this 返回Test4的引用
            }
      }
      public InnerClass1 getInner() ...{
            return new InnerClass1(); // 返回InnerClass1的实例
      }
      public void write() ...{
            System.out.println("Hello :OutClass");
      }
      public static void main(String[] arg) ...{
            Test4 test=new Test4();
            Test4.InnerClass1 inner=test.getInner();
            inner.getOuter().write();
      }
    }   
   第五个程序
    .new 直接创建内部类的实例




    package test;
    import test.Test3.InnerClass1;
    import test.Test3.InnerClass2;
    public class Test5 ...{
      /**//*
         * Inner Class
         */
      class InnerClass1 ...{
            public void write() ...{
                System.out.println("Hello :"   this.getClass());
            }
      }
      public static void main(String[] arg) ...{
            Test5 test=new Test5();
            Test5.InnerClass1 inner=test.new InnerClass1(); //直接创建内部类的对象
            inner.write();
      }
    }
      上一页
页: [1]
查看完整版本: Java