JAVA初級(五)方法--方法的基礎使用,可變引數介紹
我是導航
1,什麼是方法?
2,方法怎麼定義?怎麼寫?如何呼叫?引數又是什麼?怎麼用?
一,什麼是方法?
Java方法是語句的集合,它們在一起執行一個功能。
- 方法是解決一類問題的步驟的有序組合
- 方法包含於類或物件中
- 方法在程式中被建立,在其他地方被引用--來自菜鳥教程
通俗一點來說就是你用JAVA來輸出hello world,你是不是就得寫System.out.println("hello world"); 然後在另外一次地方在輸出1遍,是不是又得複製1行出來.然後我要你在100處輸出'hello world'玩意,你是不是就要複製100遍這個.然後有一天我要你只輸出hello不要輸出world你是不是就得改100遍.
但是如果你用方法.你就只需要改1遍,就能把這100個'hello wordl'全部修改成hello.
這就是方法,由一堆語句組成完成一個功能,編寫一遍即可處處使用,修改一次即可處處同時修改.
二,方法怎麼定義?怎麼寫?
1,方法如何定義?
修飾符 返回值型別 方法名([型別 引數名稱1],[型別引數名稱2]....){
方法體
}
就這麼定義,[]表示可選.
修飾符可以說就是這個方法的可呼叫範圍.具體介紹完介面後再說
返回值型別就是這個方法執行完後的結果.如果沒有結果那麼就寫void表示沒有返回值.
名稱自定義,但要符合規範.這樣方便閱讀,我們寫出來的程式碼不僅要給自己看,別人也要能看懂.命名規則一般是首單詞的首字母小寫
後面的單次首字母大寫,也就是駝峰式小寫
方法體,表示這個方法要執行的功能
這個printHelloWorld,功能很明顯.他就是輸出了一句話"hello world"
那麼這個方法我們要如何用呢?
很簡單,方法名();這樣呼叫了
public static void main(String[] args) {
printHelloWorld();
}
執行就能輸出hello, 多複製幾遍,就能多執行幾次. 修改printHelloWorld,
public static void printHelloWorld(){ System.out.println("hello"); }
然後在執行一次main方法,就能全部修改成hello了.
-->方法的好處想必能夠體會了.
如果有返回值呢?
比如我要這個方法計算出1+1,然後再拿這個結果在另外一個地方繼續計算.怎麼做?
public static int printHelloWorld(){
int i = 1+1;
return i;
}
這樣就能獲得一個能計算1+1的方法了.
return是什麼意思?就是中止方法, return 後面的i就是獲取這個方法你要的結果
然後在執行main方法,你會發現好像沒反應。
那是因為你執行了這個方法,但是沒有去拿它的結果做事情啊
所以
public static void main(String[] args) {
int i = printHelloWorld();
System.out.println(i);
}
這樣定義一個和方法的返回值型別一樣的變數來接收它,然後在進行下一步
執行後輸出1.
-->至此,返回值的基礎使用就介紹完了.
那麼括號內的引數是什麼?怎麼用?
括號內的引數可以理解成,你要用積木搭1+1 但是你沒有1只有+,所以這時候這個1是不是就的找人來給你.這個從別的地方獲取的東西就稱為引數,也能說是未知數
當然這是我自己的理解
那麼引數怎麼來玩呢?
public static int getSum(int i,int j) {
int sum = i + j;
return sum;
}
這段程式碼的功能就是計算任意兩個數的和.
那麼如何用呢?
public static void main(String[] args) {
int sum = getSum(1,3);
System.out.println(sum);
}
就這麼用,在括號裡面寫陣列,用’,‘隔開,
執行,結果輸出4,如果你要計算別的 就換成別的數字.
-->解析:這個方法它能不能自己計算出我們想要的和?明顯是不能的,你如果不給它數字,它就給你報錯.你數字都不給我怎麼算嘛?
比如你這麼寫 getSum(); 直接報錯,不讓你運行了.
只要你在()內寫了引數,就表示你想要執行這個方法就必須給我引數,而且型別要對.!!!
那麼引數的使用應該能瞭解一些了吧,就是這個方法執行某一個功能必須藉助外來的工具才能完成時.這個工具就能稱為引數.
在java裡面就用方法(型別 名稱1,型別 名稱2)來表示.
拓展:可變引數
1,可變引數是什麼?
假如一個方法最多需要10個引數,它們的型別都一樣,表示的意義也差不多一樣.但有時候我要7個,你是不是要寫7個引數?但有時候我一個都不要.你又不用寫引數. 這是不是很麻煩,可變引數便解決了這個問題
可變引數則能滿足這麼一種情況.根據需要決定我要不要給你引數
2,那麼可變引數怎麼玩?
public static void main(String[] args) {
int sum = getSum(1,3);
System.out.println(sum);
}
public static int getSum(int...num) {
int sum =0;
for(int i = 0;i<num.length;i++){
sum = sum+num[i];
}
return sum;
}
觀察getSum方法
可變引數是int...num 它是固定的寫法 型別...名稱 中間3個點是固定的
這樣這個方法是不是就升級了,它升級成了,輸入N個數,求這N個數的和.不再是兩個數之和了
同時也能發現,可變引數.實質它是一個數組
執行:輸出4
可變引數要求:
1,定義:型別...名稱 中間三個點
2,它必須是最後一個引數 比如getSum(int j,int...num)是對的 getSum(int...sum,int i)是錯的。這麼寫會報錯
總結:
1,方法是什麼?怎麼玩?-->用自己的話總結一波
2,可變引數的概念
下回介紹方法中的開頭部分,修飾符.