复用类
1、Java中实现复用类ed方式有3种:
(1)组合:新的类由现有类的对象构成;
(2)继承:按照现有类的类型来创建新的类;
(3)代理:介于组合和继承之间,通过选择性地继承父类方法来创建新类;
2、组合
编译器不是简单地为每一个引用创建默认对象,如果想初始化这些引用,可以在代码ed如下位置进行:
①在定义对象的地方;
②在类的构造器中;
③在就要使用这些对象之前(惰性初始化);
④使用实例初始化;
class test{
private String s = "Happy"
private String s1 = "Happy"; //①
private String s2;
private String s3 = s; //④
private String s4;
public test(){
s2 = "Happy"; //②
}
public void method(){
s4 = "happy";
System.out.println(s4); //③
}
}
3、代理
public class Ship{
void up(int num);
void dowm(int num);
void left(int num);
void right(int num);
}
pubilc calss SmallShip extends Ship{
private Sting name;
public SmallShip(String name){
this.name = name;
}
void up(int num){
controls.back(num);
}
void dowm(int num){
controls.back(num);
}
void left(int num){
controls.back(num);
}
void right(int num){
controls.back(num);
}
}
4、JavaSE5新增了
@Override注解:可以当成关键字使用,当先要覆盖某个方法时,可以使用这个注解,
这样在不小心重载而非覆盖这个方法时,解释器会生成一条错误信息;
5、final关键字
final关键字用于规定数据无法改变:通常处于设计或效率的目的;
(1)final 数据
①一个永不改变的编译时数据
②一个在运行时被初始化的值,并且不希望被改变;
空白final
Java允许生成空白final:指被指明为final但是未给予初值的域,编译器会确保空白final在使用前被初始化(没有手动赋值的情况下,会赋值为默认初始值);
final参数:
Java允许在参数列表中以申明的方式将参数指明为final,意味着无法在方法中更改参数引用所指向的对象;
(2)final 方法
①将方法锁定,以防任何继承类修改它的含义,确保该方法在继承类中的行为保持不变;
②效率,在Java的早期实现中,如果一个方法声明为final,就是同意编译器将针对该方法的所有调用都转为内嵌调用;
(3)final 类
当某个类定义为final时,就表明了该类不可继承;