java内部类之成员内部类之局部内部类

本文介绍了Java中局部内部类的概念及特点,包括其定义方式、如何访问外部类的属性和方法,以及实例化的正确时机。此外还说明了局部内部类的一些限制条件。

局部内部类特点:
  1.定义在代码块、方法体内的类叫局部内部类
  2.局部内部类访问外部类的属性和方法使用“外部类名.this.属性名”和“外部类名.this.方法名(参数)”的形式
  3.对外部世界完全隐藏,只能在作用域内生成对象。
局部内部类有以下限制:
  1.局部类不能加访问修饰符,因为他们不是类成员
  2.成员内部类不能与外部类重名
  3.局部内部类访问作用域内的局部变量,该局部变量需要加final修饰

 

public class LocalInnerClass {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Outer3 outer3 = new Outer3();
		outer3.OuterShow();
	}

}

class Outer3{
	private int num1 = 1;
	private static int num2 = 2;
	public void OuterShow() {
		final int num4 = 4;//fianl好像修复了,不声明为final在内部类里也可以用(可以去掉final)
		//Inner inner = new Inner();不能在这里实例化,因为Inner类还没有初始化,就不能调用该类
		class Inner{//局部内部类不能加访问修饰符
			public void show() {
				int num1 = 10;
				System.out.println(num1);
				System.out.println(Outer3.this.num1);//调用外部类的属性写法
				System.out.println(Outer3.num2);//调用外部静态属性写法
				System.out.println(num4);
			}
		}
		Inner inner = new Inner();//应该在这里实例化
		inner.show();
	}
}

  

转载于:https://www.cnblogs.com/liubing2018/p/8462786.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值