方法的定義:
類的方法一般表示類的行為或某種功能。
方法定義的格式:
修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2...) {
方法體語句;
return 返回值;
}
方法的格式說明
修飾符:目前就用 public static。后面我們再詳細的講解其他的修飾符。
返回值類型:就是功能結果的數據類型。
方法名:符合命名規則即可。方便我們的調用。
參數:
實際參數:就是實際參與運算的。
形式參數;就是方法定義上的,用於接收實際參數的。
參數類型:就是參數的數據類型
參數名:就是變量名
方法體語句:就是完成功能的代碼。
return:結束方法的。
返回值:就是功能的結果,由return帶給調用者。
方法的調用:在main函數中調用方法,讓方法執行起來
方法的形參:方法要什么參數我們就給什么類型的參數
方法的返回值:方法返回什么類型的值我們就用對應的數據類型的變量來接收。
調用方法的執行流程:a: 方法的定義是沒有順序的,寫在main函數的上邊或者下邊都可以。
b: 方法的執行,是把實參傳遞給形參,從而來執行的。
c: 方法只有被調用才會執行。
方法的重載:
在同一個類中,方法名相同,參數列表不同。與返回值類型無關。
參數列表不同:
1、參數個數不同
2、參數類型不同
3、參數的順序不同(算重載,但是在開發中不用)
例:public static int getSum(int a,int b){
System.out.println("兩個int參數");
return a+b;
}
public static int getSum(int a,int b,int c){
System.out.println("三個int參數");
return a+b+c;
}
public static double getSum(double a,double b){
System.out.println("兩個double參數");
return a+b;
}
方法重載注意事項:
1、參數列表必須不同
2、重載和參數變量名無關
3、重載和返回值類型無關
4、重載和修飾符無關
static關鍵字:
static關鍵字一般修飾成員變量,成員方法或者編寫static代碼塊優化程序性能;
靜態變量:
static修飾成員變量時,該變量為靜態變量,靜態變量屬於整個類所有,而不是某個對象所有,即被類的所有對象所共享。靜態成員可以使用類名直接訪問,也可以使用對象名進行訪問。
靜態方法:
與靜態變量一樣,我們也可以使用 static 修飾方法,稱為靜態方法或類方法。其實之前我們一直寫的 main 方法就是靜態方法。靜態方法的使用如:
public class Hello{
public static void print(){
System.out.println(“你好”);
}
public static void main(String[] args){
//直接使用類名調用靜態方法
Hello.print();
//使用類對象名調用
Hello demo=new Hello();
demo.print();
}
}
static修飾的方法成為類的方法,使用時通過“類名.方法名”的方式就可以方便的使用了,相當於定義了一個全局的函數(只要導入該類所在的包即可)。所以,相應的,非靜態方法則還是要通過實例化對象,再通過“對象.方法名”的方式訪問了。
進一步,由於靜態方法可以直接通過類名調用,說明調用靜態方法的時候,是不存在對象的,所以,靜態方法中不能有this與super關鍵字!並且由於這個特性,在靜態方法中不能訪問類的非靜態成員變量和非靜態成員方法,因為非靜態成員方法/變量都是必須依賴具體的對象才能夠被調用,即使存在類實例化的對象,也不清楚具體調用哪一個對象的非靜態成員變量或者方法。
靜態方法只能訪問所屬類的靜態成員變量和成員方法。
但是反過來,非靜態方法是可以訪問靜態方法與靜態成員變量的。
靜態代碼塊:
static關鍵字還有一個比較關鍵的作用就是 用來形成靜態代碼塊以優化程序性能。static塊可以置於類中的任何地方,類中可以有多個static塊。在類初次被加載的時候,會按照static塊的順序來執行每個static塊,並且只會執行一次。