Java/方法

維基教科書,自由的教學讀本
跳至導覽 跳至搜尋

System.out.println()是我們在前面經常使用的。那麼它是什麼呢?

println()是一個方法(Method),而System是系統(Class),out是標準輸出對象(Object)。這句話的用法是調用系統類System中的標準輸出對象out中的方法println()。

那麼什麼是方法呢?

  • 方法是解決一類問題的步驟的有序組合
  • 方法包含於類或對象中
  • 方法在程序中被創建,在其他地方被引用

創建與調用[編輯]

方法被創建在類中,方法創建方式:

修饰 返回值类型 方法名 (参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

如:

public static int age(int birthday){...}

參數可以有多個:

static float interest(float principal, int year){...}

方法可以沒有返回值,也可以沒有參數,甚至可以沒有內容:

public static void drawBox(double size){...}
public static void printBookName(){...}

調用時,有返回值方法作為數據傳遞,而無返回值方法直接作為一個語句。如:

...
myAge = age( 1991 );
...
myMoney = interest( 1000, 3 );
...
printBookName();
...

非面向對象[編輯]

我們已經知道Java是面向對象的,但Java也可以使用面向過程的用法。

Java的方法也可以像C語言的函數一樣使用。這樣做的目的僅僅是減少重複代碼,讓程序結構更加清晰。

package wikibooks;

public class Exercise {
    //main也是一个方法,是所有程序的入口
    public static void main(String args[]){
        int time;
        for( time = 2000; time < 2013; time++ ){
            System.out.println( time + "年" );
            if( bissextile( time ) )    //调用bissextile方法
                System.out.println( "是闰年" );
            else
                System.out.println( "不是闰年" );
        }
    }
    
    //判断闰年的方法
    static boolean bissextile(int year){
        boolean res = true;
        if( year % 4 != 0 ) //不能被4整除的年份不是闰年
            res = false;
        else if( (year % 100 == 0)&&( year % 400 != 0))  //能被100整除但不能被400整除的年份不是闰年
                res = false;
        //剩下的年份都是闰年
        return res;
    }
}

輸出結果:

2000年是闰年
2001年不是闰年
2002年不是闰年
2003年不是闰年
2004年是闰年
2005年不是闰年
2006年不是闰年
2007年不是闰年
2008年是闰年
2009年不是闰年
2010年不是闰年
2011年不是闰年
2012年是闰年

面向對象[編輯]

面向對象編程中,方法的意義在於提供一個機制,以訪問(對於讀和寫)對象或類型的私有數據存儲區。