局部内部类

package com.hisoft.java.DifferentClass;

/**
 * 这是局部内部类的实例 局部内部类是定义在外部类的方法体中
 * 局部内部在访问局部变量时,局部变量必须声明成final
 */
public class AreaMyouterClass {
	private String instanceStr = "外部类的实例变量";
	private static String staticStr = "外部类的静态变量";
	String name;
	public void testInner(String name) {
//		局部内部类的作用范围只在定义他的方法中有效
//		局部内部类访问局部变量,那么该局部变量默认是用final进行修饰的,
//		如果该局部变量是变量,则局部内部类是不能进行访问的;
		final String innerMathName=name;
//		innerMathName="tom";
		class Inner {
			public String name;
			private String instanceStr = "内部类的实例变量";
//			在局部内部类中不能定义静态属性
//			static String staticStr = "t";
			public void run(){
				
				System.out.println(innerMathName);
			}
			public Inner(String innerMathName) {
				this.name = innerMathName;
			}
			public void innerPrint() {
				// 访问的是内部类的实例变量
				// 因为重名时,内部类的成员优先级更高
				System.out.println(this.instanceStr);
				// 如果想明确的使用外部类的this
				// 那么就必须在this之前加上外部类的类名
				System.out.println(AreaMyouterClass.this.instanceStr);
				System.out.println(staticStr);
			}
		}
		System.out.println(innerMathName);
		Inner inner = new Inner(innerMathName);
		inner.innerPrint();
		System.out.println("this is 局部内部类的值"+inner.name);
	}
	public AreaMyouterClass() {
		
	}
	public AreaMyouterClass(String name){
		AreaMyouterClass out = new AreaMyouterClass();
		out.testInner(name);
	}
	public static void main(String[] args) {
		AreaMyouterClass myout = new AreaMyouterClass("tom");
		myout.testInner(myout.name);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值