JAVA内部类

Java的内部类可以有效解决”多重继承”问题,
java内部类,有:静态内部类,非静态内部类,局部内部类,匿名内部类四种。内部类可以声明为private或protected,普通类只能被赋予public
非静态内部类初始化时,需要外围类对象实例,如:
OuterClass outer=new OuterClass();
outer.new InnerClass().method();
外围类实例也会隐式的传给非静态内部类,因此非静态内部类可以访问外围类所有成员包括私有,但不能使用static修饰非静态内部类成员

静态内部类不需要外围类实例,如:
new OuterClass.InnerClass().method();
静态内部类只能访问外围类的static 成员,也可以显示的在静态内部类使用new OuterClass().field(可以是私有)来手工建立外围类实例引用,但这需要消耗同非静态内部类更多的时间和空间,


匿名类没有类名,也就没有构造方法,所以只能在它们被声明的时候实例化
匿名类和局部类只有在非静态环境中定义的时候才有外围实例,也不能包含静态成员.
如果内部类的每个实例,都需要一个指向外围实例的引用,就要把内部类做成非静态的,否则做成静态的,假设这个内部类在方法内,如果你只需要在一个地方创建实例,并且已经有了一个预置的类型可以说明这个类的特征,就要把它做成匿名类,否则就做成局部内
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值