`
wangqisen
  • 浏览: 47105 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
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();
	}
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics