java编程思想笔记--内部类部分二

来源:互联网 发布:淘宝食品代理公司注 编辑:程序博客网 时间:2024/04/30 03:30
package com.wang.test;public class test2 {private int a=2;class test3{public void fun(){a=3;}}public static void main(String args[]){test2 t=new test2();test2.test3 t2=t.new test3();}}

以上是普通方式。如果内部类test3是一个静态类,则其与外围类其实没有任何关系,也不能访问到外围类的内部成员变量a。但是,如果是一个静态内部类,可以采用不创建外围类对象的方式来创建该内部类。代码如下:

package com.wang.test;public class test2 {private int a=2;static class test3{public void fun(){}}public static void main(String args[]){test2.test3 t2=new test2.test3();}}

如果需要产生对外部对象的引用,可以使用外部类的名字后面紧跟圆点和this。下面的事例展示了如何使用this。

package com.wang.test;public class DotThis2 {public void f(){System.out.println("f()");}public class Inner{public DotThis2 getOuter(){return DotThis2.this;}}public Inner inner(){return new Inner();}public static void main(String args[]){DotThis2 dt2=new DotThis2();DotThis2.Inner inner=dt2.inner();inner.getOuter().f();}}