黑马程序员-java内部类总结

黑马程序员-java内部类总结

ID:43313202

大小:217.28 KB

页数:16页

时间:2019-09-30

黑马程序员-java内部类总结_第1页
黑马程序员-java内部类总结_第2页
黑马程序员-java内部类总结_第3页
黑马程序员-java内部类总结_第4页
黑马程序员-java内部类总结_第5页
资源描述:

《黑马程序员-java内部类总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、内部类指在一个外部类的内部再定义一个类。内部类可以用成员修饰符修饰,如static>public、friendly^protected和private。而外部顶级类(即类名和文件名相同的)也只能使用public和friendly。1、成员内部类1)成员内部类,就是作为外部类的成员,可以直接访问外部类的所有成员变量和方法,包括private的。因为内部类中持有一个外部类的引用,格式:OuterClass.this;2)外部类要访问内部类,必须建立内部类对象。当内部类定义在外部类的成员位置上,且非私有,可以在外部

2、其他类中直接建立内部类对象。格式:OuterClass」nnerClassin=newOuterClass.newInnerClass();3)注意,成员内部类小不能含有静态变量和方法。原因请见下面的“嵌套内部类”部分。例1:[java]viewplaincopy11.classTestDemo2・{3.publicstaticvoidmain(String[]args)4・{5.Outer.Innerinl=newOuter().newInner();//得到内部类的一•种方式6.inl.function(

3、);7.Outer•InneTin2=newOuter().getlnner();8.in2.function();9.}10.}11.classOuter12.{13.privateintx=3;14.classInner15.{16.voidfunction()17.{18•System・out.println("Inner:”+x);//内部类町以访问外部类所冇成员,包括私冇的。19.}20.}21./*在外部类作用范圉Z外得到内部类对象的另一种方式,那就是利用其外部类的方法创建并返回。22.个人推荐这

4、种方式,尤其当内部类的构造函数无参数时*/23.publicInnergetlnner()24.{19.returnnewInner();20.}19.}输ill结果:[java]viewplaincopy1.Inner:32.Inner:32、嵌套内部类嵌套内部类,就是用static修饰的内部类。1)当内部类被static修饰后,就具备static的特性,只能直接访问外部类中的static成员。出现了访问局限。2)在外部其他类,直接访问static内部类中的非静态成员的格式:newOuterClass.ln

5、nerClass().function();在外部其他类,直接访问static内部类中的静态成员的格式:Outer.Inner.function。;3)当内部类中定义了静态成员,则该内部类必须是嵌套类的,而嵌套类中的成员不必都是静态的;当外部类中的静态方法访问内部类时,内部类也必须是嵌套类。例2:[java]viewplaincopy1.classTestDemo2.{3.publicstatixvoidmai"(StTing[]args)4・{5.newOuter.Inner().functionl();/

6、/在外部J〔他类,Ji接访问static内部类中的非静态成员6.Outer.Inner.function2();//在外部其他类,直接访问static内部类中的静态成员7・}8}9.classOuter10.{11.privateintx=3;12.privatestaticinty=4;9.staticclassInnervoidfunctionl()14・{15.17.//System.out.println("Inner.x:n+x);//出错,嵌套内部类只能访问外部类中的静态成员。18.System.

7、out•println("Inner.y="+y);19.}20.staticvoidfunction2()21.{22.System.out.println(":Enner.static");23.}24.}125.}输出结果:[java]viewplaincopy1.Inner.y=42.Inner.static3、局部内部类局部内部类,是指内部类定义在方法和作用域内。D局部内部类仍可以访问外部成员;2)内部类以及其内部成员前面不能加private,static等修饰符。因为它们是用于修饰成员的,而此时内

8、部类已经变成了局部变量;3)局部内部类只能访问被final修饰的局部变量。例3:[java]viewplaincopy11.classTestDemo2・{3.publicstaticvoidmain(String[]args)4・{5・Outerout=newOuter();6.out.method(l);7・}8}9.classOuter10.{11.privateintx=3;13.voidm

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

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

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