方法的所屬性
在Java的語言中,方法相當於C語言中的函數,但是它與傳統的函數也有着明確的不同:在結構化的語言中,函數是一等公民,整個程序是由一個個函數組成的;但是在面向對象的語言里,類是一等公民,整個程序是由一個個類組成的。因此在Java中,方法不能獨立存在,它只能屬於類或者對象。因此,如果我們要定義一個方法,就必須在類中定義。值得注意的是,如果這個方法添加了修飾符static(這個修飾符后面會詳細說明),這個方法就屬於這個類,否則的話,這個方法屬於這個類的實例。
我們調用方法的方式為:類.方法 | | 實例.方法。但是當我們在一個類中的方法調用相同類中的方法時,如果這個方法是普通的方法,我們需要用到this來調用;如果這個方法是靜態的方法(static修飾),我們需要用類名來調用。
方法的格式說明
(1).方法的格式定義為:
修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2...) {
方法體語句;
return 返回值;
}
修飾符:目前就用 public static。后面我們再詳細的講解其他的修飾符。
返回值類型:就是功能結果的數據類型。當這個方法沒有返回值的時候,返回值的類型為void;當這個方法有返回值的時候,返回值的類型根據返回的數據來確定(如果有返回值,必須使用return)。
方法名:符合命名規則即可。
參數:實際參數:就是實際參與運算的。形式參數;就是方法定義上的,用於接收實際參數的。
參數類型:就是參數的數據類型
參數名:就是變量名
方法體語句:就是完成功能的代碼。
return:結束方法的。
返回值:就是功能的結果,由return帶給調用者。
方法的參數傳遞機制
方法的參數分為兩種:形參和實參。形參代表方法定義上的,用於接收實際參數的參數。實參代表實際參與運算的參數。
Java中方法的參數傳遞都是通過值傳遞實現的,所謂值傳遞,就是將實際參數值的副本傳入方法內,而參數本身不會受到任何影響。例子如下:
//a,b交換值的例子,但是這個只是值傳遞,a和b的值不會變 public class fun { public static void main(String[] args) { int a = 3,b = 4; fun1(a,b); //實參 System.out.println(a+"+++++"+b); } //類中的方法都用public static為前綴 public static void fun1(int a,int b){ //形參 int temp; temp = a; a = b; b = temp; System.out.println(a+"========"+b); } } //輸出結果為: 4========3 3+++++4
形參個數可變的方法
形參個數可變表示允許為方法指定數量不確定的形參。如果在方法定義時,在最后一個形參的類型后加三個點(...),則表明該形參可以接受多個參數值,多個參數值被當成數組傳入。例子如下:
public class fun { public static void main(String[] args) { fun1(4,"abc","dsa","bfd"); } public static void fun1(int a,String... books){ //這里面的String... books相當於String[] books for(String book:books){ System.out.println(book); } System.out.println(a); } }
但是形參個數可變的這個方法要求,個數可變的形參只能處於形參列表的最后位置,即一個方法中最多只能有一個個數可變的形參。
方法重載
在Java方法的執行過程中,重載的概念是相當重要的。Java允許同一個類中定義多個同名的方法,只要形參列表不同即可。如果同一個類中包含了兩個或兩個以上的方法名相同,但是形參列表不同(與返回值類型無關),我們則成為方法重載。所謂的重載就是要求兩同一不同:同一個類中方法名相同,參數列表不同。對於方法其他部分(返回值類型,修飾符等)與重載沒有任何關系。參數列表不同包括:A:參數個數不同。B:參數類型不同。C:參數的順序不同(算重載,但是在開發中不用)
下面例子中演示了類中方法的重載:
public class fun { public static void main(String[] args) { int a = 1; int b = 2; String c = "abc"; fun1(a); fun1(a,b); fun1(a,c); } public static void fun1(int a){ System.out.println(a); } public static void fun1(int a,int b){ System.out.println(a+"==="+b); } public static void fun1(int a,String b){ System.out.println(a+"==="+b); } } //最終結果 1 1===2 1===abc
為了我們共同進步,我這里有計算機專業的各種免費視頻,
如果想要,關注我的公眾號:念流聲。私聊我,看到后給你連接(只放了一張圖片,視頻有很多,需要什么可以私聊問我,有的話就給你)。