類方法和類變量

     對象是行爲(Java中用方法實現)和屬性(Java中用成員變量實現)的組合。屬性和對象自己有着相同的生命週期。在任何給定的時間點,對象有着特定的狀態,狀態是類的所有實例變量所組合而成的快照。由於這個緣由,有時候實例變量也被稱之爲狀態變量。java

     行爲方法操做或者改變對象的屬性。換句話說,行爲方法能夠改變對象的狀態。查詢方法返回對象狀態的某個片段。函數

     注意:通常咱們將方法設計成:要麼改變對象的狀態,要麼返回信息。不要兩件事情都作。工具

   有時候,您發現某個方法接受參數,只對這些參數進行處理,而後返回一個值。該方法不須要操做對象的狀態。這樣的方法叫作工具方法。有時候,工具方法在別的語言中被稱之爲函數。工具方法是全局的:任何客戶代碼均可以訪問它們。設計

   有時候,在工具類中建立實例是沒有什麼意義的,例如,DateUtil 的方法createDate,該方法以月份、天、和年份做爲參數,最後返回Date 對象。方法createDate 不改變其它數據。若是不去建立DateUtil 對象,還會稍稍簡化您的代碼。最後,由於createDate 是DateUtil 中惟一的方法,因此沒有必要建立DateUtil 實例。由於這些緣由,createDate 是類方法的候選者。對象

原:生命週期

package studentinfo;get

import java.util.*;class

public class DateUtil {import

     public Date createDate(int year, int month, int date) {變量

          GregorianCalendar calendar = new GregorianCalendar();

          calendar.clear();

          calendar.set(Calendar.YEAR, year - 1900);

          calendar.set(Calendar.MONTH, month - 1);

          calendar.set(Calendar.DAY_OF_MONTH, date);

         return calendar.getTime();

}

}


重構:

package sis.studentinfo;

import java.util.*;

public class DateUtil {

    private DateUtil() {}

    public static Date createDate(int year, int month, int date) {

        GregorianCalendar calendar = new GregorianCalendar();

        calendar.clear();

        calendar.set(Calendar.YEAR, year);

        calendar.set(Calendar.MONTH, month - 1);

        calendar.set(Calendar.DAY_OF_MONTH, date);

        return calendar.getTime();

}

}

相關文章
相關標籤/搜索