java内部类.this,,.new 局部内部类

package equality;

public class DoThis {
	void f(){System.out.println("DoThis.f()");}
	public class Inner{
		public DoThis outer(){
			return DoThis.this;//如果需要生成对外部类的引用就可以这样
			//外部类的名字加.this
		}
	}
	public Inner inner(){
		return new Inner();
	}
	public static void main(String[] args){
		DoThis dt=new DoThis();
		DoThis.Inner dti=dt.inner();
		dti.outer().f();
	}

}

```]
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190118201955819.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjQ4MDky,size_16,color_FFFFFF,t_70)

public class ProgramMain {

public int age;
public void say(){
	String name="pwd";
	class innerClass{
		public void hello(){
			System.out.println(name+"你好");//可以使用外部成员方法中的变量
			
		}
		
	}
	innerClass tClass=new innerClass();//局部内部类和内部类不一样,不能直接New出来,
	//因为他的作用域就是在这个方法中所以可以在方法里面new出来
	tClass.hello();
	System.out.println("这个方法中包含局部内部类");
}
public static void main(String[] args){
	ProgramMain a=new ProgramMain();
	
	a.say();
}

}


猜你喜欢

转载自blog.csdn.net/qq_41648092/article/details/86546083