Java基礎(chǔ)學(xué)習(xí)05-方法

什么是方法
Java方法是語句的集合蚓庭,它們在一起執(zhí)行一個功能控淡。

  • 方法是解決一類問題的步驟的有序組合
  • 方法包含于類或?qū)ο笾?/li>
  • 方法在程序中被創(chuàng)建包蓝,在其他地方被引用

方法的定義

一般情況下硝烂,定義一個方法包含以下語法:

修飾符 返回值類型 方法名 (參數(shù)類型 參數(shù)名){
    ...
    方法體
    ...
    return 返回值;
}

方法包含一個方法頭和一個方法體别威。下面是一個方法的所有部分:

  • 修飾符:修飾符查排,這是可選的凳枝,告訴編譯器如何調(diào)用該方法。定義了該方法的訪問類型跋核。
  • 返回值類型 :方法可能會返回值岖瑰。returnValueType是方法返回值的數(shù)據(jù)類型。有些方法執(zhí)行所需的操作砂代,但沒有返回值蹋订。在這種情況下,returnValueType是關(guān)鍵字void刻伊。
  • 方法名:是方法的實際名稱露戒。方法名和參數(shù)表共同構(gòu)成方法簽名。
  • 參數(shù)類型:參數(shù)像是一個占位符捶箱。當(dāng)方法被調(diào)用時智什,傳遞值給參數(shù)。這個值被稱為實參或變量丁屎。參數(shù)列表是指方法的參數(shù)類型荠锭、順序和參數(shù)的個數(shù)。參數(shù)是可選的晨川,方法可以不包含任何參數(shù)证九。
  • 方法體:方法體包含具體的語句键思,定義該方法的功能。
    1459506282508515.jpg

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

參數(shù)可以有多個:

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

注意: 在一些其它語言中方法指過程和函數(shù)甫贯。一個返回非void類型返回值的方法稱為函數(shù)吼鳞;一個返回void類型返回值的方法叫做過程。

方法調(diào)用

Java支持兩種調(diào)用方法的方式叫搁,根據(jù)方法是否返回值來選擇赔桌。

當(dāng)程序調(diào)用一個方法時,程序的控制權(quán)交給了被調(diào)用的方法渴逻。當(dāng)被調(diào)用方法的返回語句執(zhí)行或者到達方法體閉括號時候交還控制權(quán)給程序疾党。

當(dāng)方法返回一個值的時候,方法調(diào)用通常被當(dāng)做一個值惨奕。例如:

int larger = max(30, 40);

如果方法返回值是void雪位,方法調(diào)用一定是一條語句。例如梨撞,方法println返回void雹洗。下面的調(diào)用是個語句:

System.out.println("Welcome to Java!");

方法重載

如果一個類中有多個具有相同名稱但參數(shù)不同的方法,則稱為方法重載卧波。如果只需要執(zhí)行一個操作时肿,具有相同的方法名稱將增加程序的可讀性。
假設(shè)必須執(zhí)行給定數(shù)值的添加操作(求和)港粱,但是參數(shù)的數(shù)量不固定螃成,如果為兩個參數(shù)編寫add1(int,int)方法查坪,為三個參數(shù)編寫add2(int寸宏,int,int)方法.可以用重載:
兩個參數(shù)相加:

int add(int num1偿曙,int num2){
    return num1 + num2;
}

三個參數(shù)相加

int add(int num1,int num2 ,int num3){
    return num1 + num2 + num3;
}

無數(shù)個參數(shù)相加

static int add(int... args) {
        int result = 0;
        for(int i = 0;i < args.length;i ++) {
            result += args[i];
        }
        return result;
}

命令行參數(shù)的使用

有時候你希望運行一個程序時候再傳遞給它消息氮凝。這要靠傳遞命令行參數(shù)給main()函數(shù)實現(xiàn)。

命令行參數(shù)是在執(zhí)行程序時候緊跟在程序名字后面的信息遥昧。

實例
下面的程序打印所有的命令行參數(shù):

public class CommandLine {

   public static void main(String args[]){ 
      for(int i=0; i<args.length; i++){          
          System.out.println("args [" + i + "]: " + args[i]);
      }
    }
 }

如下所示覆醇,運行這個程序:

java CommandLine this is a command line 200 -100

運行結(jié)果如下:

args[0]: this
args[1]: is
args[2]: a
args[3]: command
args[4]: line
args[5]: 200
args[6]: -100

可變參數(shù)

JDK 1.5 開始朵纷,Java支持傳遞同類型的可變參數(shù)給一個方法炭臭。

方法的可變參數(shù)的聲明如下所示:

typeName... parameterName

在方法聲明中,在指定參數(shù)類型后加一個省略號(...) 袍辞。

一個方法中只能指定一個可變參數(shù)鞋仍,它必須是方法的最后一個參數(shù)。任何普通的參數(shù)必須在它之前聲明搅吁。

實例

public class VarargsDemo {

   public static void main(String args[]) {
      // 調(diào)用可變參數(shù)的方法
      printMax(34, 3, 3, 2, 56.5);
      printMax(new double[]{1, 2, 3});
   }

   public static void printMax( double... numbers) {
   if (numbers.length == 0) {
      System.out.println("No argument passed");
      return;
   }

   double result = numbers[0];

   for (int i = 1; i <  numbers.length; i++)
       if (numbers[i] >  result){
          result = numbers[i];
       }
      System.out.println("The max value is " + result);
   }
}

以上實例編譯運行結(jié)果如下:

The max value is 56.5
The max value is 3.0
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末威创,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌姨伤,老刑警劉巖谷异,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吸申,居然都是意外死亡梗劫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門截碴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梳侨,“玉大人,你說我怎么就攤上這事日丹∽卟福” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵哲虾,是天一觀的道長丙躏。 經(jīng)常有香客問我,道長束凑,這世上最難降的妖魔是什么彼哼? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮湘今,結(jié)果婚禮上敢朱,老公的妹妹穿的比我還像新娘。我一直安慰自己摩瞎,他們只是感情好拴签,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著旗们,像睡著了一般蚓哩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上上渴,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天岸梨,我揣著相機與錄音,去河邊找鬼稠氮。 笑死曹阔,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的隔披。 我是一名探鬼主播赃份,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了抓韩?” 一聲冷哼從身側(cè)響起纠永,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谒拴,沒想到半個月后尝江,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡英上,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年茂装,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片善延。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡少态,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出易遣,到底是詐尸還是另有隱情彼妻,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布豆茫,位于F島的核電站侨歉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏揩魂。R本人自食惡果不足惜幽邓,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望火脉。 院中可真熱鬧牵舵,春花似錦、人聲如沸倦挂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽方援。三九已至没炒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間犯戏,已是汗流浹背送火。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留先匪,地道東北人种吸。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像胚鸯,于是被迫代替她去往敵國和親骨稿。 傳聞我的和親對象是個殘疾皇子笨鸡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容