程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java編程那些事兒52—方法聲明

Java編程那些事兒52—方法聲明

編輯:關於JAVA

第七章 方法

方法(method),在面向過程的語言中稱作函數(function),在匯編語言中稱作子程序,是一個代碼功能塊,實現某個特定的功能。在實際的程序開發中,方法是一種基礎的組織代碼的方式。本部分就介紹方法相關的概念、相關語法以及實際使用時需要注意的問題。

7.1 方法概述

方法的概念來源於數學上的函數,在數學中,當數據具有一定的規律時,就是用一個函數來代碼該數字的規律,例如f(n)=n則代表1、2、3、……這樣的一個數列。在數學上n是參數,對於確定的n值只有一個f(n)的值和它對應。

方法是一組為了實現特定功能的代碼塊的集合。方法在語法上的功能主要有以下兩個:

l結構化代碼

將代碼按照功能進行組織,使代碼的結構比較清晰,容易閱讀和修改,也就是程序的可維護性強。

l減少代碼重復

一個固定的功能,可能會在程序中多次使用,在使用時只需要調用寫好的方法,而不用重復書寫對應的功能代碼。

方法在書寫時需要注意以下兩點:

l邏輯嚴謹

方法實現的一個完整的功能,所以在書寫時要考慮到各種可能的情況,並對每種情況做出恰當的處理。

l通用性強

方法實現的是一種功能,在實際實現時,可以根據需要,使方法具備一定的通用性,除非必要,否則不要寫專用的方法。

在Java語言中,恰當的使用方法,將使程序更加優雅,便於閱讀和使用。下面就來介紹方法聲明的語法格式。

7.2 方法聲明

方法聲明寫在代碼中類聲明的內部,方法聲明的外部,偽代碼如下:

public class Hello{
 方法聲明1
 方法聲明2
 ……
}

在Java語言中,方法聲明之間沒有順序。

方法聲明,就是聲明一種新的功能,或者說創造一種新的功能。例如以下是一個求int數據絕對值的方法聲明代碼:

public int abs(int n){
if(n > 0){
return n;
}else{
return –n;
}
}

這裡就實現了求int值絕對值的功能,為了使該功能通用,使用一個參數n代表需要求絕對值的數值,在方法內部使用求絕對值的邏輯:正數的絕對值是自身,負數的絕對值是相反數,使用return語句將方法運算的結果返回。

具體方法聲明的語法格式如下:

訪問控制符[修飾符]返回值類型方法名稱(參數列表){
  方法體
}

在實際聲明一個方法時,需要依次確定以上內容。下面是具體的說明:

1、訪問控制符

訪問控制符限定方法的可見范圍,或者說是方法被調用的范圍。方法的訪問控制符有四種,按可見范圍從大到小依次是:public、protected,無訪問控制符,private。其中無訪問控制符不書寫關鍵字即可。具體的范圍在後續有詳細介紹。

2、修飾符

修飾符是可選的,也就是在方法聲明時可以不書寫。

修飾符是為方法增加特定的語法功能,對於方法實現的邏輯功能無影響。方法的訪問控制符有五個,依次是:

ustatic——靜態的
ufinal——最終的
uabstract——抽象的
usynchronized——同步的
unative——本地的

具體修飾符的作用在後續內容中將詳細介紹。

3、返回值類型

返回值類型是指方法功能實現以後需要得到的結果類型,該類型可以是Java語言中的任意數據類型,包括基本數據類型和復合數據類型。如果方法功能實現以後不需要反饋結果,則返回值類型書寫為void。

在實際書寫方法時,需要首先考慮一下方法是否需要反饋結果,如果反饋結果,則結果的類型是什麼?這個根據方法的需要進行確定,例如上面求絕對值的方法,int類型的絕對值還是int類型,所以把返回值類型做成int型。

在方法聲明裡聲明返回值類型,便於方法調用時獲得返回值,並對返回值進行賦值以及運算等操作。

4、方法名稱

方法名稱是一個標識符,用來代表該功能塊,在方法調用時,需要方法名稱來確定調用的內容。

為了增強代碼的可讀性,一般方法名稱標識符和該方法的功能一直,例如實現數組排序的方法,可以將方法名稱設定為sort。

在Java編碼規范中,要求方法的首字母小寫,而方法名稱中單詞和單詞間隔的第一個字母大寫,例如bubbleSort。

5、參數列表

參數列表是聲明方法需要從外部傳入的數據類型以及個數,例如上面求int類型絕對值的方法,每次需要從外部傳入一個int類型的值,這就需要在參數列表部分進行聲明,語法格式為:

數據類型參數名稱

多個參數時的格式為:

數據類型參數名稱1,數據類型參數名稱2,……

聲明參數時,類型在前,名稱在後,如果有多個參數時,參數和參數之間使用逗號進行分割。

參數的值在方法調用時進行指定,而在方法內部,可以把參數看作是已經初始化完成的變量,直接進行使用。

參數列表部分是方法通用性的最主要實現部分,理論上來說,參數越多,方法的通用性越強,在聲明方法時,可以根據需要確定參數的個數,以及參數的類型。參數在參數列表中的排列順序只和方法調用時有關。

6、方法體

方法體是方法的功能實現代碼。方法體部分在邏輯上實現了方法的功能,該部分都是具體的實現代碼,不同的邏輯實現代碼區別會比較大。

在方法體部分,如果需要返回結果的值,則可以使用return語句,其語法格式為:

return 結果的值;

或無結果返回時:

return;

如果方法的返回值類型不是void,則可以使用return返回結果的值,要求結果值的類型和方法聲明時返回值類型必須一致。如果返回值類型是void時,可以使用return語句實現方法返回,而不需要返回值。當代碼執行到return語句時,方法結束,所以return語句的後續書寫順序的代碼,例如:

return 0;

int n = 0;//語法錯誤,永遠無法執行到該語句

另外,如果返回值類型不是void時,需要保證有值返回,例如下面的方法就有語法錯誤:

public int test(int a){
 if(a < 0){
  return 0;
 }
}

則該方法的聲明代碼中,當a的值大於等於零時,則沒有返回值,這語法上稱作返回值丟失,這個也是在書寫return語句時需要特別注意的問題。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved