应同事的要求,我把项目中遇到的java的问题总结在此地,慢慢积累,慢慢提炼,希望各位达人指教。
一 this的释义:
写过SQL语句的人都知道,当我们进行多表联合查询的时候,方便起见,会使用别名,一个例子:
select doc.title, att.filename from document doc, attach att where att.docid = doc.id
其实,某种程度上说,this也是一个类的别名(句柄),当类被程序创建的时候,句柄产生;它的生命周期就是类本身的生命周期。举个例子说:
public class Machine{
public void work(){
System.out.println("Machine starting");
}
}
public class Worker{
private Machine machine;
public void work(){
this.machine.work();
}
public void setMachine(Machine machine)...
}
简单的说,当Woker类调用Mchine类的work方法时,它的形式是Machine.work(machine);this指向Machine的对象,用术语来说,当你初始化一个类的时候,计算机会创建一个内存的地址给它,this就是那个0和1组成的地址。直观的看,其实跟SQL中的别名没什么两样,只是this是一种特殊的别名而已。