跟着阿里學JavaDay07——Java基礎語法(五)
我們後面的筆記我,打算直接用程序,加註釋進行記錄。日後若本人有疑問,可進行網絡查詢加以整理回復
package com.cionda.JavaDemo.dept; public class JavaDemo { public static void main(String[] args) { // TODO Auto-generated method stub dept department = new dept("004","張三");//聲明並實例化對象 System.out.println(department.deptInfo());//引用對象中的deptInfo方法,並打印返回值 System.out.println(new dept("003","李四","北京").deptInfo());//這裡打印的是匿名對象中的deptInfo方法,使用完畢後,匿名對象即成為垃圾 //我們可以嘗試再次打印department.deptInfo System.out.println(department.deptInfo()); } }
package com.cionda.JavaDemo.dept; /** * * @author CionDa * * */ public class dept {//創建部門類 /*** * 日常開發中,我們的成員變量都要用關鍵字private進行保護 * 成員變量是寫在類裏面的 * 而局部變量是寫在方法體裏面的 */ private String deptno;//員工ID編號 private String deptname;//員工名字 private String deptloc;//部門地點 public dept() {//構造方法 /*** * 1、構造方法的名稱必須和所在的類名稱完全一樣,就連大小寫也要一樣。 * 2、構造方法不要寫返回值類型,連void都不寫。 * 3、構造方法不能return一個具體的返回值。 * 4、如果沒有編寫任何構造方法,那麼編譯器將默認會贈送一個構造方法,沒有參數、方法體什麼事情都不會做。 * 5、一旦編寫了至少一個構造方法,那麼編譯器將不再贈送。 */ this(null,null,null);//減少代碼的重複性,調用形參最多的一個構造方法來使用 } public dept(String deptno,String deptname) {//構造方法重載 /*** * (1)概述方法名相同,與返回值類型無關(構造方法沒有返回值),只看參數列表 * (2)注意事項 * 如果沒有給出構造方法,系統將自動提供一個構造方法 * 如果給了構造方法,系統將不再提供構造方法 * 所以最好一直寫出無參構造方法public dept() */ this(deptno,deptname,null); } public dept(String deptno,String deptname,String deptloc) {//這是一個形參最多的一個構造方法 this.deptno = deptno;//this關鍵字指向的是同一個類中的對象 /*** * 如果這裡我們不用this * 我們的編譯器會誤認為,等號左邊和右邊是同一個對象,輸出所有結果為null * 為了驗證,我們可以拷貝代碼進行修改 * * 我們的this關鍵字,這裡還可以指向同一個類中的方法 * 例如:上面兩個構造方法調用這個構造方法一樣 * 注意: * 我們在調用this關鍵字使用方法時避免進入死循環 * 例如: * public dept() { * this(null,null,null); * } * public dept(String deptno,String deptname,String deptloc) { * this(); * } * 這樣會造成兩個方法相互調用,沒有停止值,特別是構造方法。沒有返回值。最容易進入死循環 */ this.deptname = deptname; this.deptloc = deptloc; } public String deptInfo() { return "員工號:"+this.deptno+"\n員工名字:"+this.deptname+"\n部門地址:"+this.deptloc; } /*** * ①我們可以在構造方法里進行對象的賦值 * ②也可以用getter,setter來進行對象的賦值 * 例如以下代碼段。 * 構造函數是用於初始化類的屬性,且只有在創建對象時才會調用構造函數,用於給對象分配地址 * 無參的構造函數,創建對象時默認調用,當程序沒有明確寫出有參的構造函數,系統會默認的創建一個。 * 有參的構造函數,創建對象時傳進參數。 * setter方法,是對象引用調用setter方法,並傳入參數。 * getter方法,對象調用getter方法,獲取對象屬性的值。 * 區別: * 構造方法只有在創建對象時才會被「系統」調用且只調用一次, 而getter和setter方法是隨時可以被「對象」調用 * 構造方法不能獲取對象屬性的值, 而getter可以獲取對象的屬性值 */ // public String getDeptno() { // return deptno; // } // public void setDeptno(String deptno) { // this.deptno = deptno; // } // public String getDeptname() { // return deptname; // } // public void setDeptname(String deptname) { // this.deptname = deptname; // } // public String getDeptloc() { // return deptloc; // } // public void setDeptloc(String deptloc) { // this.deptloc = deptloc; // } }
感謝阿里雲開發者社區,讓我有整套系統的Java學習教程
同時,感謝博客園,讓我有一個免費的博客,並讓我做筆記學習!!