江西广告网
标题:
Java
[打印本页]
作者:
樱桃小猪猪
时间:
2009-1-16 09:43
标题:
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(); } }
[1] [2]
第四个程序
通过.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] [2]
欢迎光临 江西广告网 (http://bbs.jxadw.com/)
Powered by Discuz! X3.2