java技术专题综述之内部类篇

java技术专题综述之内部类篇

ID:38667908

大小:68.86 KB

页数:7页

时间:2019-06-17

java技术专题综述之内部类篇_第1页
java技术专题综述之内部类篇_第2页
java技术专题综述之内部类篇_第3页
java技术专题综述之内部类篇_第4页
java技术专题综述之内部类篇_第5页
资源描述:

《java技术专题综述之内部类篇》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、JAVA技术专题综述之内部类篇有些类的定义中包含另一个类的定义。这种处于内部的类称为内部类(innerclass)。例如:publicclassOuterClass{publicclassInnerClass{//---Thisisainnerclass.}}InnerClass类嵌套在OuterClass中,并且被声明为public,因此被OuterClass类之外的对象访问。InnerClass类没有被声明为OuterClass类的一个静态成员,因此除非生成了一个OuterClass对象,否则无法生成

2、任何InnerClass对象。但是,当你声明一个包含嵌套类的类对象时,并不一定会生成嵌套类的对象,这主要由包含嵌套类的类的构造方法决定。示例1:classOuterClass{classInnerClass{}}publicclassTest{publicstaticvoidmain(String[]args){OuterClassout=newOuterClass();OuterClass.InnerClassin=out.newInnerClass();}}我们使用OuterClassout=newO

3、uterClass();语句生成了一个OuterClass类对象。然后又使用OuterClass.InnerClassin=out.newInnerClass();语句借助外部类的实例生成了一个内部类的对象。main()方法中的两条语句也可以用下面的这一条语句替换:OuterClass.InnerClassin=newOuterClass().newInnerClass();总之:在一个类(Test)中,创建另一个类(OuterClass)中的非静态内部类(InnerClass)必须要借助这个外部类(Ou

4、terClass)的一个实例。而且这个内部类对象的声明也必须用OuterClass.InnerClass的形式。示例2:publicclassTest{classInnerClass{}1publicstaticvoidmain(String[]args){InnerClassin=newTest().newInnerClass();}}在main()方法中实例化本类的内部类可以用上例的形式。示例3:publicclassTest{classInnerClass{}InnerClassin=newInne

5、rClass();publicstaticvoidmain(String[]args){}}在main()方法外,实例化本类的内部类就和我们平常的操作一样了。示例4:publicclassTest{classInnerClass{}publicvoidmethod(){InnerClassin=newInnerClass();}publicstaticvoidmain(String[]args){}}在本类的非静态方法中,实例化本类的内部类也和我们平常的操作一样。为了让内部类的对象不依赖于外部类的对象,你

6、可以把内部类声明为static。示例5:classOuterClass{staticclassInnerClass{}}publicclassTest{publicstaticvoidmain(String[]args){2OuterClass.InnerClassin=newOuterClass.InnerClass();}}从这个例子我们可以看出:创建InnerClass类的对象不再需要OuterClass类的对象。但依然要用OuterClass.InnerClass这个形式声明in对象。示例6:cl

7、assOuter{staticintouter_stat=0;intouter_non_stat=1;staticclassStaticInner{staticintstat=2;staticintstat_test=outer_stat;publicvoidtester(){System.out.println("outer_stat="+outer_stat);}}classNonStaticInner{publicvoidtester(){System.out.println("outer_stat

8、="+outer_stat);System.out.println("outer_non_stat="+outer_non_stat);System.out.println("StaticInner.stat="+StaticInner.stat);}}}publicclassTest{publicstaticvoidmain(String[]args){newOuter().newNonStaticInner().teste

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。