this关键字的简单优化
this关键字可以说是非常的灵活,正因为它的灵活所以导致了它的复杂性,下面做个简单示例。
class Emp{
private long EMPON; // 编号
private String EMNAME; // 姓名
private String DEPT; // 部门
private double SALARY; // 薪资
public Emp(long EMPON) {
this.EMPON = 15265L;
}
public Emp(long EMPON,String EMNAME) {
this.EMPON = EMPON;
this.EMNAME = "新员工";
}
public Emp(long EMPON,String EMNAME,String DEPT) {
this.EMPON = EMPON;
this.EMNAME = EMNAME;
this.DEPT = DEPT;
}
public Emp(long EMPON,String EMNAME,String DEPT,double SALARY) {
this.EMPON = EMPON;
this.EMNAME = EMNAME;
this.DEPT = DEPT;
this.SALARY = SALARY;
}
public String empRrint() {
return "雇员编号:"+this.EMPON+",雇员姓名:"+this.EMNAME+",雇员所属部门:"+this.DEPT+",雇员薪资:"+this.SALARY;
}
public long getEMPON() {
return EMPON;
}
public void setEMPON(long eMPON) {
EMPON = eMPON;
}
public String getEMNAME() {
return EMNAME;
}
public void setEMNAME(String eMNAME) {
EMNAME = eMNAME;
}
public String getDEPT() {
return DEPT;
}
public void setDEPT(String dEPT) {
DEPT = dEPT;
}
public double getSALARY() {
return SALARY;
}
public void setSALARY(double sALARY) {
SALARY = sALARY;
}
}
public class EmpDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Emp emp = new Emp(48529,"join","财务部");
System.out.println(emp.empRrint());
}
}
优化之后:
class Emp{
private long EMPON; // 编号
private String EMNAME; // 姓名
private String DEPT; // 部门
private double SALARY; // 薪资
public Emp(long EMPON) {
this(15265L, null, null, 0.0);
}
public Emp(long EMPON,String EMNAME) {
this( EMPON, EMNAME,null,0.0);
}
public Emp(long EMPON,String EMNAME,String DEPT) {
this(EMPON,EMNAME,DEPT,0.0);
}
public Emp(long EMPON,String EMNAME,String DEPT,double SALARY) {
this.EMPON = EMPON;
this.DEPT = DEPT;
this.EMNAME = EMNAME;
this.SALARY = SALARY;
}
public String empRrint() {
return "雇员编号:"+this.EMPON+",雇员姓名:"+this.EMNAME+",雇员所属部门:"+this.DEPT+",雇员薪资:"+this.SALARY;
}
}
public class EmpDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Emp emp = new Emp(48529,"join","财务部",15155);
System.out.println(emp.empRrint());
}
}