学习《java编程思想》笔记之复用类

学习《java编程思想》笔记之复用类

1.@Override注解可以防止你在不想重载时而意外地进行了重载。
2.空白final是指被声明为final但又未给定初值的域,无论什么情况,编译器都确保空白final在使用前必须被初始化。例:
class Poppet{
private final int i=0;
private final int j;//空白final
private final Poppet p;//空白final
public BlankFinal(){
j=1;//初始化空白final
p=new Poppet(1);//初始化空白final
}
public BlankFinal(int x){
j=x;//初始化空白final
p=new Poppet(x);//初始化空白final
}
public static void main(String[] args){
new BlankFinal();
new BlankFinal(47);
}
}
必须在域的定义处或者每个构造器中用表达式对final进行赋值,这正是final域在使用前总是被初始化的原因所在。
3.Java允许在参数列表中以声明的方式将参数指明为final。这意味着你无法在方法中更改参数引用所指向的对象:
class Gizmo{ public void spin(){}}
public class FinalArguments{
void with(final Gizmo g){
//! g=new Gizmo();//g是final,不能更改引用所指向的对象
}
void without(Gizmo g){
g=new Gizmo();
g.spin();
}
//! void f(final int i){i++;}//不能改变
int g(final int i){return i+1;}

}
4.“覆盖”只有在某方法是基类的接口的一部分时才会出现。如果某方法为private,它就不是基类的接口的一部分
5.当将某个类的整体定义为final时(通过将关键字final置于它的定义之前)例:final clas Dinosaur{…},就表明了你不打算继承该类,而且也不允许别人这样做。换句话说,出于某种考虑,你对该类的设计永不需要做任何变动,或者出于安全的考虑,你不希望它有子类。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值