1. Java中this關鍵字代表對象本身。用this關鍵字可以在類的內部調用屬性和方法,這樣代碼的可讀性比較高,因為它明確的指出了這個屬性或方法的來源。
2. 同時在構造函數中也可以使用this關鍵字調用本類中的其它構造函數,但有幾點需要注意:
- 構造函數調用其它構造函數,需要將this寫在構造函數的第一行。
- 構造函數不可遞歸,防止死循環。
3. 一個類的構造函數分為無參和有參構造函數。通常做法是指定寫好一個包含所有字段的構造函數,然后其它構造函數可以直接調用該函數,實現代碼重用。
package org.lyk.entities; public class Emp implements Comparable<Emp> { private long empno; private String ename; private String job; private float sal; public long getEmpno() { return empno; } public void setEmpno(long empno) { this.empno = empno; } public String getEname() { return ename; } public void setEname(String ename) { this.ename = ename; } public String getJob() { return job; } public void setJob(String job) { this.job = job; } public float getSal() { return sal; } public void setSal(float sal) { this.sal = sal; } @Override public String toString() { return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", sal=" + sal + "]"; } public Emp() { this(-1, "無名氏", "未指定", 0); } public Emp(long empno) { this(empno,"無名氏","未指定",0); } public Emp(long empno, String name) { this(empno, name, "未指定", 0); } public Emp(long empno, String ename, String job, float sal) { super(); this.empno = empno; this.ename = ename; this.job = job; this.sal = sal; } @Override public int compareTo(Emp o) { if(this.sal < o.sal) return -1; else if(this.sal > o.sal) return 1; if(this.empno < o.empno) return -1; else if(this.empno > o.empno) return 1; return 0; } }
package org.lyk.main; import org.lyk.entities.Emp; public class Main { public static void main(String[] args) { Emp[] emp = new Emp[4]; emp[0] = new Emp(); emp[1] = new Emp(9989); emp[2] = new Emp(9987,"Jerry"); emp[3] = new Emp(7786,"Larry","programer",889); java.util.Arrays.sort(emp); for(Emp item : emp) { System.out.println(item); } } }
歡迎加入QQ群參與討論. 422683877