内部类

成员内部类

编译后也同样生成独立的.class文件

访问权限

内部用外部可以随意访问,外用内必须用new创建后使用(与普通类一致)

方法调用

间接调用:调用外部类对象的成员方法对内部类成员方法进行调用
直接调用:用.运算符链式调用

成员变量重名问题

如果成员内部类的成员变量和外部类的成员变量发生重名,调用规则为

  • 调用外部类成员变量:外部类名称.this.外部类成员变量名
  • 调用内部类本身成员变量:this.内部类成员变量名

局部内部类

只能在所属的方法内进行使用,出了之后就不可以再使用了,也不可以被方法将该类的对象进行返回
如果局部内部类要对方法中的局部变量进行访问,那么这个局部变量就必须是有效的final,即可以不用final修饰符进行修饰,但在被局部内部类访问之后直到这个变量的生存期结束都不可以对该变量进行修改。
因为局部变量的储存在栈内存中,在方法退出之后其生存期已经结束,而局部内部类用new关键字进行对象创建,储存在堆内存中,两者的生存期不一致,因此有这个限制。

匿名内部类

若某个类就使用一次而已,就直接new关键字后接大括号进行写就行
如果要对接口进行实现,就接一个接口名称,再接大括号,然后当作一个实现该接口的类进行书写就行

权限修饰符注意事项

外部类只能用public(default)
成员内部类:四种权限修饰符都可以
局部内部类:不能写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值