java方法過載
阿新 • • 發佈:2018-12-19
方法的優點就是可以提高程式碼的複用性。以後要有編寫方法的意識,不要把所有程式碼都堆積在main方法中。什麼時候需要定義方法?當希望提高某段程式碼複用性的時候可以去定義一個方法。
注意:
- 方法體中不能定義方法,只能在類體中定義方法。
- 上面程式碼中的(int a , int b)叫做形式引數列表,簡稱形參,呼叫sumInt方法時傳入的(10 , 15)叫做實際引數列表,簡稱:實參。java語言中有規定,實參和形參在資料型別上要對應相同,並且在數量上要相同。
- 形參就是區域性變數,變數名的命名可以隨意命名,最好是見名知意
區域性變數和成員變數 變數根據宣告的位置分為:
- 區域性變數:在方法體當中宣告的變數
- 成員變數:在方法體之外宣告的變數
方法的定義:
修飾符 返回值型別 方法名(引數型別 引數名1,引數型別 引數名2...) {
方法體語句;
//如果方法沒有返回值的話就不需要return了。
return 返回值;
}
不同類間的方法呼叫,類名.方法名
- 修飾符:暫時先寫 public static。後面再詳細的講解其他的修飾符和作用。
- 返回值型別:可以是java語言中的任何一種資料型別(基本資料型別和引用資料型別)。如果方法執行結束後,沒有任何返回值,返回值型別填寫void,即表示沒有返回值。
- 方法名:自己定義,只要符合命名規則即可,使用駝峰方式命名,即第一個單詞首字母小寫,後面單詞的首字母大寫,例如sumInt。
- 引數:
沒有引數:如果沒有引數,引數型別和引數名可以不寫,()裡面空著就行
有引數:可以有一個,或多個引數,多個引數用”,”隔開 - 引數型別:就是引數的資料型別,基本資料型別和引用資料型別都可以
- 引數名:就是變數名,符合命名規則即可
- 方法體語句:就是完成功能的程式碼。
- return:如果方法的返回值型別不是void,那麼在方法體中必須使用return 語句來返回資料。return語句一旦執行,則方法結束,因此在方法中return後面的程式碼是不會執行的。
- 返回值:方法執行的結果,將結果返回給呼叫者。
public class testoverload { public static void main(String[] args) { int c=sum(10,5); System.out.println(c); float d=method1.sumfloat(1.0f, 2.4f); System.out.println(d); } public static int sum(int a,int b) { int c=a+b; return c; } } class method1{ public static float sumfloat(float a,float b) { float c=a+b; return c; } }
方法的執行順序 main方法是程式的入口,程式是從main方法裡面開始自上而下執行的。如果定義了一個方法,這個方法並未在直接或間接在main方法裡面進行呼叫,那麼這個方法將不會被執行。
方法可以定義再main方法之前或者之後都可以,方法之間不能互相呼叫,會陷入死迴圈。
public class testoverload {
public static void main(String[] args) {
int c=sum(10,5);
mutiply();
add();
sub();
// method1();
}
public static int sum(int a,int b) {
int c=a+b;
return c;
}
public static void mutiply() {}
public static void add() {}
public static void sub() {}
public static void decs(){}
/* //方法之間不能互相呼叫,否則陷入死迴圈
public static void method1() {
method2();
}
public static void method2() {
method1();
}
*/
}
return關鍵字
方法定義的時候帶返回值型別,方法中一定要有返回值,如果省略後面的return false,編譯器會考慮到i<=0的情況,可能會沒有返回值,會報錯
public class testoverload {
public static void main(String[] args) {
iftrue(8);
}
public static boolean iftrue(int i) {
if(i>0) {
return true;
}
return false;//沒有這行return false,可能會沒有返回值,會報錯
}
}
break,continue和return的區別
break; 和 continue; 這兩個語句主要是用來控制迴圈的,跟方法沒有關係。
return; 和以上的兩個語句不是一個級別的,return;是用來終止當前方法的。
方法過載
方法過載發生的條件
- 發生在同一個類中.
- 方法名相同
- 引數列表不同(型別,個數,順序)
注意:
- 方法過載和返回值型別無關
- 方法過載和方法的修飾符列表無關。
public class testoverload {
public static void main(String[] args) {
}
//引數的型別不同,構成引數的過載
public static void method1(float i) {}
public static void method1(int i) {}
//引數的個數不同,構成方法過載
public static void method2(int i,int j) {}
public static void method2(int i) {}
//引數的順序不同,構成方法過載,但不這樣使用
public static void method3(int i,long j) {}
public static void method3(long j,int i) {}
/*
* 方法的返回值型別不同,不構成過載,報錯
public static void method4() {}
public static int method4() {
return 1;
}
*方法的修飾符不同,不構成過載,報錯
public static void method5() {}
private static void method5() {}
*/
}
原文: