注册
 找回密码
 注册
江西广告网
查看: 334|回复: 0
打印 上一主题 下一主题

Java

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-1-23 11:48:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
内部类: 在类内部定义的类. 第一个程序: 用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]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表