方法的重載
上面使用的max方法僅僅適用于int型數(shù)據(jù)。但如果你想得到兩個(gè)浮點(diǎn)類型數(shù)據(jù)的最大值呢?
解決方法是創(chuàng)建另一個(gè)有相同名字但參數(shù)不同的方法,如下面代碼所示:
1
2
3
4
5
6
|
public static double max( double num1, double num2) { if (num1 > num2) return num1; else return num2; } |
如果你調(diào)用max方法時(shí)傳遞的是int型參數(shù),則 int型參數(shù)的max方法就會(huì)被調(diào)用;
如果傳遞的事double型參數(shù),則double類型的max方法體會(huì)被調(diào)用,這叫做方法重載;
就是說一個(gè)類的兩個(gè)方法擁有相同的名字,但是有不同的參數(shù)列表。
Java編譯器根據(jù)方法簽名判斷哪個(gè)方法應(yīng)該被調(diào)用。
方法重載可以讓程序更清晰易讀。執(zhí)行密切相關(guān)任務(wù)的方法應(yīng)該使用相同的名字。
重載的方法必須擁有不同的參數(shù)列表。你不能僅僅依據(jù)修飾符或者返回類型的不同來重載方法。
變量作用域
變量的范圍是程序中該變量可以被引用的部分。
方法內(nèi)定義的變量被稱為局部變量。
局部變量的作用范圍從聲明開始,直到包含它的塊結(jié)束。
局部變量必須聲明才可以使用。
方法的參數(shù)范圍涵蓋整個(gè)方法。參數(shù)實(shí)際上是一個(gè)局部變量。
for循環(huán)的初始化部分聲明的變量,其作用范圍在整個(gè)循環(huán)。
但循環(huán)體內(nèi)聲明的變量其適用范圍是從它聲明到循環(huán)體結(jié)束。它包含如下所示的變量聲明:
你可以在一個(gè)方法里,不同的非嵌套塊中多次聲明一個(gè)具有相同的名稱局部變量,但你不能在嵌套塊內(nèi)兩次聲明局部變量。