在面向对象编程中,使用类而不破坏现有的代码的方法有两种:组合和继承,在这篇文章中我带领大家总结感受一下。
1 组合:在新的类中产生现有类的对象,新的类由现有类的对象组成。组合一般用于在新类用使用已有类的功能而不是接口,就是新类用户看到的只是为新类所定义的接口。例如,假如你需要某个对象,它具有多个String对象,几个基本类型数据,以及另一个类的对象。他对于非基本类型的对象,必须将其置于新的类中。
public class SprinkleSystem{
private String value1,value2,value3,value4;
private WaterSource source =new WaterSource();
private int i;
private float f;
public String toString(){
return "value1="+value1+""+"value2="+value2+""+"value3="+value3+""+
"value4="+value4+"\n"+"i="+i+"f="+f+""+"source="+source;
}
public static void main(String []args){
SprinkleSystem sprinklers=new SprinkleSystem();
System.out.println(sprinklers);
}
}
class WaterSource{
private String s;
WaterSource(){
System.out.println("WaterSource()");
s="constructed";
}
public String toString(){
return s;
}
}
由上面的代码,我们发现一个方法很特殊,那就是toString,他是Object中的方法,一般查看对象的属性和状态时会调用该方法,并且一般都会重写该方法,方法内写要查看某对象的属性和
状态。打印对象时默认执行toString方法。
按照规定,一方面类域为基本类型时会被自动初始化为0,而对象引用则会被自动初始化为null;另一方面,类中的所有变量会在所有函数调用之前按照定义的顺序(若同时存在static和非static型变量时,遵循先static后非static)得到合理的初始化。