Java 遊戲開發:關於Java面向物件的知識(二)
阿新 • • 發佈:2021-02-09
上節課總結
上節課的連結
上節課最後的答案是:D
方法
方法過載 Method Reload
我們先來看看下列的程式碼
public class Test{
public static void whoIsBig(int numberA,int numberB){
if (numberA < numberB){
System.out.println(numberA + "<" + numberB);
}
else if(numberA > numberB)
{
System.out.println (numberA + ">" + numberB);
}
else
{
System.out.println(numberA + "=" + numberB);
}
}
public static void main(String[] args){
whoIsBig(1,4);
}
}
我們定義了一個whoIsBig方法,他可以判斷傳入的兩個引數誰大誰小,但是這兩個引數必須是int型別的,這也許是不大好的,因為有些時候我想對比double與double的大小,這個時候,我們可以使用方法的過載機制對傳入的引數型別不同進行程式碼的過載
public class game{
public static void whoIsBig(int numberA,int numberB){
System.out.print("整型:");
if (numberA < numberB){
System.out.println(numberA + "<" + numberB);
}
else if(numberA > numberB)
{
System. out.println(numberA + ">" + numberB);
}
else
{
System.out.println(numberA + "=" + numberB);
}
}
public static void whoIsBig(double numberA,double numberB){
System.out.print("雙浮點:");
if (numberA < numberB){
System.out.println(numberA + "<" + numberB);
}
else if(numberA > numberB)
{
System.out.println(numberA + ">" + numberB);
}
else
{
System.out.println(numberA + "=" + numberB);
}
}
public static void main(String[] args){
whoIsBig(1.45,1.4);
whoIsBig(2,5);
}
}
看程式碼我們定義了兩個whoIsBig, 粗看感覺都是一樣的,細看,引數的資料型別不同,當向方法傳入double型別的就執行引數要求傳遞double的 引數是int 就執行引數要求傳遞int的方法。
記著,方法過載一般只能用於功能一致的只是引數型別不相同的方法,如果兩個方法的功能不一致,你還是重新給方法取個名字罷。
方法的返回值
那個在定義方法經常出現的關鍵字 void 究竟是什麼玩意?
其實這是一種返回值,它代表著這個方法沒有返回值。
我們用過一個方法:Scanner的nextLine();他會接受使用者輸入的值,然後返回出來。
public class Test{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
String name = s.nextLine(); // 我們要接收返回值了
}
}
所以,方法不僅可以幫我們完成特定的動作,還可以實現返回資料的功能。
如何返回?如果你想返回最大的數字的話,你可以將void替換成 int 或者 long, 原來定義方法用到的 void 其實是返回值型別的說明,如果沒有返回值那麼返回值型別就是喜聞樂見的 void
在方法內部中,使用***return***返回變數,返回之後,方法強制結束,即使return後面有再多的程式碼都不會被執行
比如說我現在要返回變數Value_Equi,那麼就使用以下的程式碼
return Value_Equi
現在讓我們寫一個方法,他要求傳入兩個int 的 引數,比較這兩個引數誰大誰小,返回最大的 int,如果一樣大,返回 0
public class game {
static int returnBig(int numberA,int numberB){
if (numberA > numberB){
return numberA;
}
if (numberA < numberB){
return numberB;
}
return 0;
}
public static void main(String[] args) {
System.out.print(returnBig(1,5));
}
}