Java入門(七):方法,java入門方法

來源:互聯網
上載者:User

Java入門(七):方法,java入門方法

方法,在日常生活中可以理解成解決問題或處理事情的技巧,一個方法的形成,需要思考和分析,從而形成一步一步的步驟,最後在實際執行過程中驗證自己的思路。在Java中,方法的形成亦是如此。

方法,指用於封裝一段特定的邏輯功能,如計算百分比、判斷非空、時間日期的轉換等操作,可以在程式中被反覆調用,減少重複代碼,也便於程式維護,也可以相當於一個小輪子。

一個完整的方法主要由存取修飾詞、修飾詞、傳回值類型、方法名、參數列表、異常處理、方法體七個部分組成,只能聲明在類的內部。

存取修飾詞 修飾詞 傳回值類型 方法名(參數列表) throws 異常 {

  方法體

}

1、存取修飾詞

用於聲明方法的可用範圍。包括public、protected、private、預設四種。public修飾的方法可以被所有類訪問。protected修飾的方法可以被位於同一包中的所有類訪問,也可以被所有子類(可以不同包)訪問。private修飾的方法只能被當前類訪問。預設,也叫無存取修飾詞,其修飾的方法可以被位於同一包中的所有類訪問。

2、修飾詞

用於聲明方法的性質或用途。包含static、final、abstract、native、synchronized五種。static修飾的方法,屬於靜態方法,也稱為類方法,可以直接通過類名點方法名調用。final修飾的方法,不能被重載(在物件導向會仔細說明重載、重寫的)。abstract修飾的方法表示此方法是一個抽象方法,表示類中已聲明但沒有實現。native修飾的方法在類中沒有實現,此修飾詞並不多用。synchronized修飾的方法,表示該方法被“鎖”,其他地方的調用無法執行,直到方法運行完,在後面的線程中會詳細介紹。

3、傳回值類型

用於聲明方法的處理結果的資料類型。如果方法沒有傳回值,可以使用void來聲明,表示無傳回值。如果方法有傳回值,則必須在方法中使用return語句,返回與傳回值類型相相容的傳回值資料。

4、方法名

方法的識別名稱,其命名原則遵守Java命名規範,做到見名知意,長一點也可以。

5、參數列表

用於聲明方法中需要處理的資料,是方法執行的前提條件,可以有多個相同或不同資料類型參數。

6、異常處理

使用throws聲明方法運行中可能會出現的異常,將其拋給方法調用者,常見的如null 指標異常、輸入輸出異常等。

7、方法體

方法體是方法的處理過程,有具體的演算法邏輯或商務邏輯,是一個方法的核心。

package javalearningday06;import java.util.Arrays;/** * 方法 * @author 小川94 * @date 2018年3月25日 */public class Function {    public static void main(String[] args) {        System.out.println(helloSomeone("")); // Hello world !        System.out.println(helloSomeone("小川94")); // Hello,小川94 !        System.out.println(randomCheckCode(4));                // 對於方法中參數的驗證        int a = 5; // 聲明的局部變數a        // 將a傳給add方法,並不會使用上面已經在棧中存在的a,而是會另外在棧中開闢儲存空間,存放傳參a        add(a);         // 輸出列印的a是main方法中聲明的變數a,不是add方法中的傳參a        System.out.println(a); // a = 5    }        /**     * 打招呼方法     * StringUtil為工具類,同包下的類不需要引用;     * 對於傳遞進來的參數,如果後續會對其進行相關操作,請務必判斷是否為空白     * @param name 名稱     * @return     */    public static String helloSomeone(String name) {        if (StringUtil.IsNullOrEmpty(name)) {            return "Hello world !";        }        return "Hello," + name + " !";    }        /**     * 產生num位隨機驗證碼字串     * @param num 驗證碼位元     * @return     */    private static String randomCheckCode(int num){        if (StringUtil.IsNullOrEmpty(num)) {            return "請傳入需要產生幾位元驗證碼的參數!";        }        if (0 == num || num < 0) {            return "請傳入大於0的正整數!";        }        String[] dic = {"A","B","C","D","E","F","G","H","I","J",                "K","L","M","N","O","P","Q","R","S","T",                "U","V","W","X","Y","Z","0","1","2","3",                "4","5","6","7","8","9"};        String[] strArr = new String[num];        for (int i=0; i<strArr.length; i++) {            int index = (int)(Math.random()*dic.length);            strArr[i] = dic[index];        }        return Arrays.toString(strArr);    }        /**     * 關於方法中變數的問題:     *   方法中聲明的變數、參數列表的傳參都是局部變數,運行期間,都會在棧中分配儲存空間     * @param a     */    protected static void add(int a) {        a++;    }    }

下面是一個是否為空白判斷的工具類

package javalearningday06;/** * 是否為空白工具類 * @author 小川94 * @date 2018年3月25日 */public class StringUtil {        /**     * 判斷對象是否為null或者Null 字元串     * @param obj     * @return     */    public static boolean IsNullOrEmpty(Object obj){        if (obj == null) {             return true;         }        if (obj.toString().trim().equals("")) {             return true;         }        return false;    }        /**     * 判斷對象不為null或Null 字元串     * @param obj     * @return     */    public static boolean IsNotEmpty(Object obj){        return !IsNullOrEmpty(obj);    }    }

對於方法,也可以這樣通俗的理解,將整個方法當做一台可以重複生產產品的機器,存取修飾詞相當於這台機器可以由誰來操作;修飾詞相當於機器的設定,對產品規格、重量等的設定;傳回值類型相當於最後的成品;方法名就是這台機器的名字、編號;參數列表就是生產產品的原料;異常處理相當於機器運行過程中可能會出現的故障;方法體就是機器的加工過程了,最後通過return語句,來產生最終的成品。

Java的進階特性是物件導向,可以對萬事萬物進行抽象處理,一切皆對象,其中有抽象映射具體、具體歸納抽象的相互轉化,這些不僅會在編程中運用,生活中亦是如此。

上面的代碼都上傳至了GitHub,地址是https://github.com/XiaoChuan94/javalearning/tree/master/javalearningday06,有需要的可以去下載觀看,如果喜歡就給個star吧!如有不足,歡迎下方留言交流。

文章首發於我的個人公眾號:悅樂書。喜歡分享一路上聽過的歌,看過的電影,讀過的書,敲過的代碼,深夜的沉思。期待你的關注!

公眾號後台輸入關鍵字“Java學習電子書”,即可獲得12本Java學習相關的電子書資源,如果經濟能力允許,還請支援圖書作者的紙質正版書籍,創作不易。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.