final,Class<?>,内部类

Q1:final关键字的作用
1、从字面意思,最后,也就是它标识的类,变量,方法是最后的状态不能被改变
2、final标识的类,表示不能被继承,那么类中的成员变量可以按需设置为final,也就是成员变量的属性和类是否设置为final无关,但是成员方法会被隐式设置为final属性
3、如果类没有设置final但是成员变量设置为final,那么该变量被初始化后其值不能再被改变
4、下面这段话摘自《Java编程思想》第四版第143页:

  “使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。“

  因此,如果只有在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。
5、.匿名内部类中使用的外部局部变量只能是final变量

摘录博文:https://www.cnblogs.com/dolphin0520/p/3736238.html

Q3:内部类的分类,访问权限
1、分类:成员内部类,局部内部类,匿名内部类;什么是局部什么成员其实和成员变量局部变量性质类似只不过他的属性是一个类
2、成员内部类和外部类变量方法的互访权限:成员内部类可以访问外部类的所有方法和变量,如果成员内部类不是静态的那么外部类得先创建内部类实例才可以访问内部类的变量和方法
3、如果成员内部类中变量名和外部类一样,那么就近原则,此时在成员内部类访问的这个变量是成员内部类的变量,那么要访问外部类要采用这个写法

outerClass.this.变量名

Q4:内部类的实现原理

Q5:为什么要有内部类,内部类有什么特殊使用
上面这3个问题参考这篇博文
http://www.cnblogs.com/dolphin0520/p/3811445.html

Q6:Class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值