2011年1月21日 星期五

使用類別個別印出年月日

使用類別來個別印出年月日,這是利用課本程式範例CH5裡的一些程式改的,為了幫助了解程式,註解寫的非常多,希望對大家有幫助︿︿"。
以下為程式內容:
class Date    //宣告一個類別Date

{  // 宣告3個成員day和month和year

   private int day;

   private int month;

   private int year;

//--------------------------Day設定+判斷------------------------

   public boolean setday(int d)//接收主程式傳過來的d,true就原封不動傳回主程式,false就傳回error。

   {if ( getday(d) )            //接收getday傳回的true、false,判斷是否要傳回正確的day回主程式。

      {day = d;return true;}          //把合法的資料傳回去主程式                    

       else return false;                             

    }

   public boolean getday(int d)
//接收主程式傳過來的day
   {if ( d < 1 || d > 31 ) return false;return true;}//判斷是否合法,合法傳true、不合法傳false回setday的if裡。

//--------------------------month設定+判斷----------------------

   public boolean setmonth(int m) //接收主程式傳過來的m,true就原封不動傳回主程式,false就傳回error。

   {if ( getmonth(m) )       
 //接收getmonth傳回的true、false,判斷是否要傳回正確的month回主程式。
      {month = m;return true;}           //把合法的資料傳回去主程式

      else return false;                           

    }

   public boolean getmonth(int m) //接收主程式傳過來的month

   {if ( m < 1 || m > 12 ) return false;return true;}//判斷是否合法,合法傳true、不合法傳false回setmonth的if裡。

//--------------------------year設定+判斷-----------------------

   public boolean setyear(int y) //接收主程式傳過來的y,true就原封不動傳回主程式,false就傳回error。

   {if ( getyear(y) )            //接收getyear傳回的true、false,判斷是否要傳回正確的year回主程式。

      {year = y;return true;}           //把合法的資料傳回去主程式

      else return false;

    }

   public boolean getyear(int y) //接收主程式傳過來的year

   {if ( y < 1900 ) return false;return true;}//判斷是否合法,合法傳true、不合法傳false回setyear的if裡。

//--------------------------設定每個成員的輸出------------------

   public void printDate()            
//印出Date類別的成員(day、month、year)
   {

      System.out.print(month+"-");//印出month

      System.out.print(day+"-");    //印出day

      System.out.println(year);      //印出year

   }

}

//-----------------------------------主程式-------------------------------------
public class CH5 

{

    public static void main(String[] args)

    {

        Date today = new Date();        
//用new來規劃出today在Date有記憶空間
        today.setday(32);                     
//傳32數值到setday
        today.setmonth(11);                
 //傳11數值到setmonth
        today.setyear(2007);                //傳2007數值到setyear

        System.out.print("今天(月-日-年): ");

        today.printDate();                      
//用printDate印出年月日
    }

沒有留言:

張貼留言