# 【方法】
##### 今日復習指南
~~~
1.有參數無返回值方法的定義和調用(0.5個小時內完成,多寫幾遍)
? ?itheima03包中Demo01PrintMax.java ?打印兩個int數字的最大值
? ?itheima03包中Demo02PrintOu.java ? 打印一個int數字是否是偶數 ? ?
? ?
2.有參數有返回值方法的定義和調用(1.5個小時內完成,多寫幾遍) ?
? ?itheima04包中Demo01GetMax.java ?獲取兩個int數字的最大值
? ?itheima04包中Demo02GetOu.java ? 獲取一個int數字是否是偶數
? ?
3.其它知識
? (1)方法的調用方式
? (2)形參和實參的區別
~~~
##### 今日內容
~~~
方法的概念【重要】
無參數無返回值方法的定義和調用【重要】
有參數無返回值方法的定義和調用【重要】
有參數有返回值方法的定義和調用【重要重要重要重要重要】
~~~
### 第一章 方法入門【理解】
##### 1.1 方法引入
~~~
/*
? ?代碼功能:模擬游戲中打怪物的場景
?
? ?發現問題:
? ? ? ?打怪物的代碼是相同的,打了3次怪物,寫了3次相同的代碼,導致程序代碼冗余,閱讀性差
?
? ?怎么解決問題呢?
? ? ?1.能否將發射炮彈的代碼,做成一個方法/功能
? ? ?2.使用的時候直接調用即可
========================================================================
這個代碼大家不用寫,直接拷貝
========================================================================
*/
public class Demo01NoMethod {
? ?/*
? ? ? ?main是一個主方法,由JVM調用,是程序的入口
? ? ? ? ? ?1.public static:修飾符,目前固定寫法
? ? ? ? ? ?2.void:返回值類型,表示方法內部的代碼執行完畢,沒有最終的結果,返回給調用者
? ? ? ? ? ?3.main:方法名稱:固定寫法
? ? ? ? ? ?4.String[] args:方法的參數
? ?*/
? ?public static void main(String[] args) {
? ? ? ?System.out.println("游戲開始...");
?
? ? ? ?System.out.println("看到了一個怪物...血牙野豬...");
? ? ? ?System.out.println("準備發射5發炮彈");
? ? ? ?System.out.println("發射第1發炮彈* * * *");
? ? ? ?System.out.println("發射第2發炮彈* * * *");
? ? ? ?System.out.println("發射第3發炮彈* * * *");
? ? ? ?System.out.println("發射第4發炮彈* * * *");
? ? ? ?System.out.println("發射第5發炮彈* * * *");
? ? ? ?System.out.println("發射5發炮彈結束");
? ? ? ?System.out.println("...血牙野豬被打倒...");
?
? ? ? ?System.out.println("...走啊走啊走啊走...");
? ? ? ?System.out.println("看到了一個怪物...黃金虎鯊...");
? ? ? ?System.out.println("準備發射5發炮彈");
? ? ? ?System.out.println("發射第1發炮彈* * * *");
? ? ? ?System.out.println("發射第2發炮彈* * * *");
? ? ? ?System.out.println("發射第3發炮彈* * * *");
? ? ? ?System.out.println("發射第4發炮彈* * * *");
? ? ? ?System.out.println("發射第5發炮彈* * * *");
? ? ? ?System.out.println("發射5發炮彈結束");
? ? ? ?System.out.println("...黃金虎鯊被打倒...");
?
? ? ? ?System.out.println("...走啊走啊走啊走...");
? ? ? ?System.out.println("看到了一個怪物...吞天巨狼...");
? ? ? ?System.out.println("準備發射5發炮彈");
? ? ? ?System.out.println("發射第1發炮彈* * * *");
? ? ? ?System.out.println("發射第2發炮彈* * * *");
? ? ? ?System.out.println("發射第3發炮彈* * * *");
? ? ? ?System.out.println("發射第4發炮彈* * * *");
? ? ? ?System.out.println("發射第5發炮彈* * * *");
? ? ? ?System.out.println("發射5發炮彈結束");
? ? ? ?System.out.println("...吞天巨狼被打倒...");
? ? ? ?System.out.println("...走啊走啊走啊走...");
?
? ? ? ?System.out.println("游戲結束...");
? }
}
~~~
~~~
package com.itheima01;
?
/*
? ?代碼功能:模擬游戲中打怪物的場景
?
? ?發現問題:
? ? ? ?打怪物的代碼是相同的,打了3次怪物,寫了3次相同的代碼,導致程序代碼冗余,閱讀性差
?
? ?怎么解決問題呢?
? ? ?1.能否將發射炮彈的代碼,做成一個方法/功能
? ? ?2.使用的時候直接調用即可
========================================================================
這個代碼大家不用寫,直接拷貝
========================================================================
注意:
? ?1.方法定義完畢后,不調用不執行
? ?2.方法的調用格式:
? ? ? ?方法名稱(...);
? ?3.方法定義完畢后,可以調用任意多次
?
*/
public class Demo02Method {
? ?/*
? ? ? ?main是一個主方法,由JVM調用,是程序的入口
? ? ? ? ? ?1.public static:修飾符,目前固定寫法
? ? ? ? ? ?2.void:返回值類型,表示方法內部的代碼執行完畢,沒有最終的結果,返回給調用者
? ? ? ? ? ?3.main:方法名稱:固定寫法
? ? ? ? ? ?4.String[] args:方法的參數
? ?*/
? ?public static void main(String[] args) {
?
? ? ? ?System.out.println("游戲開始...");
?
? ? ? ?System.out.println("看到了一個怪物...血牙野豬...");
?
? ? ? ?//調用方法,發射5發炮彈
? ? ? ?fire();
?
? ? ? ?System.out.println("...血牙野豬被打倒...");
?
? ? ? ?System.out.println("...走啊走啊走啊走...");
? ? ? ?System.out.println("看到了一個怪物...黃金虎鯊...");
?
? ? ? ?//調用方法,發射5發炮彈
? ? ? ?fire();
?
? ? ? ?System.out.println("...黃金虎鯊被打倒...");
?
? ? ? ?System.out.println("--------------------------------");
?
? ? ? ?System.out.println("...走啊走啊走啊走...");
? ? ? ?System.out.println("看到了一個怪物...吞天巨狼...");
?
? ? ? ?//調用方法,發射5發炮彈
? ? ? ?fire();
?
? ? ? ?System.out.println("...吞天巨狼被打倒...");
? ? ? ?System.out.println("...走啊走啊走啊走...");
?
? ? ? ?System.out.println("游戲結束...");
? }
?
? ?//模擬main方法,定義發射炮彈的方法fire
? ?public static void fire() {
? ? ? ?System.out.println("準備發射5發炮彈");
? ? ? ?for (int i = 1; i <= 5; i++) {
? ? ? ? ? ?System.out.println("發射第"+i+"發炮彈* * * *");
? ? ? }
?
? ? ? ?return ;//結束方法的執行,返回方法的調用處
? }
}
~~~
圖解:

##### 1.2 方法的概念和格式
~~~
1.方法的概念:
就是將具有獨立功能的代碼塊組織成為一個整體,使其具有特殊功能的代碼集。
將具有特殊功能的一段代碼,使用{}括起來,添加一些必要的修飾符等,起個名字,方便使用
? ?
2.方法的格式:
修飾符 返回值類型 方法名稱(參數列表...) {
? ? ? ?方法功能代碼;
? ? ? ?return ; 或者 return 結果數據/返回值數據;
? }
?
3.格式解釋:
(1)修飾符: public static ?目前固定寫法,先記住
(2)返回值類型: 方法的功能代碼執行完畢后,產生的返還給方法調用者的結果數據的類型
目前定義的方法內部沒有結果數據返回給調用者,返回值類型固定寫為void
目前定義的方法是沒有返回值的,返回值類型固定寫為void
? (3)方法名稱: 給方法起個名字(標識符: 符合命名規范(小駝峰規則)),方便后期調用
? (4)參數列表:目前定義的方法沒有參數,不需要寫參數列表,但是必須保留()
? (5)方法功能代碼: 一行/多行語句
? (6)return ; 結束方法,返回到方法的調用處,建議省略
~~~
##### 1.3 無返回值無參數方法的定義和調用
~~~
1.練習:
定義方法method,方法內部輸出一句話"我是一個方法"
?
/*
? ?無返回值無參數方法的定義和調用
? ? ? ?1.無返回值:
? ? ? ? ? ?方法內部沒有結果數據返回給調用者,返回值類型固定寫為void
? ? ? ? ? ?方法是沒有返回值的,返回值類型固定寫為void
?
? ? ? ?2.無參數:
? ? ? ? ? ?方法沒有參數,不需要寫參數列表,但是必須保留()
?
? ? ? ?3.練習:
? ? ? ?定義方法method,方法內部輸出一句話"我是一個方法"
?
? ? ? ?4.注意:
? ? ? ? ? ?(1)方法定義完畢后,不調用不執行
? ? ? ? ? ?(2)方法的調用格式:
? ? ? ? ? ? ? ?方法名稱(...);
? ? ? ? ? ?(3)方法定義完畢后,可以調用任意多次
?
*/
public class Demo01Method {
?
? ?public static void main(String[] args) {
?
? ? ? ?System.out.println("main...start...");
?
? ? ? ?//調用method方法
?
? ? ? ?method();
?
?
? ? ? ?System.out.println("main...end...");
?
? }
?
? ?//定義方法method,方法內部輸出一句話"我是一個方法"
? ?public static void method() {
?
? ? ? ?System.out.println("我是一個方法");
?
? ? ? ?return ;//結束方法返回到方法的調用處
?
? }
} ? ? ?
?
~~~
##### 1.4 無返回值無參數方法的調用圖解

##### 1.5 無參數無返回值的方法練習-打印最大值
~~~
需求:
定義一個方法,打印該方法內部的兩個數據(方法內部定義的變量)的最大值
?
/*
? ?無參數無返回值的方法練習-打印最大值
? ? ? ?1.無返回值:
? ? ? ? ? ?方法內部沒有結果數據返回給調用者,返回值類型固定寫為void
? ? ? ? ? ?方法是沒有返回值的,返回值類型固定寫為void
?
? ? ? ?2.無參數:
? ? ? ? ? ?方法沒有參數,不需要寫參數列表,但是必須保留()
?
? ? ? ?3.練習:
? ? ? ?定義一個方法,打印該方法內部的兩個數據(方法內部定義的變量)的最大值
?
? ? ? ?4.注意:
? ? ? ? ? ?(1)方法定義完畢后,不調用不執行
? ? ? ? ? ?(2)方法的調用格式:
? ? ? ? ? ? ? ?方法名稱(...);
? ? ? ? ? ?(3)方法定義完畢后,可以調用任意多次
?
*/
public class Demo02PrintMax {
?
? ?public static void main(String[] args) {
?
? ? ? ?System.out.println("main...start...");
?
? ? ? ?//調用方法printMax
? ? ? ?printMax();
?
? ? ? ?System.out.println("main...end...");
?
? }
?
? ?//定義一個方法,打印該方法內部的兩個數據(方法內部定義的變量)的最大值
? ?public static void printMax() {
?
? ? ? ?int a = 10;
? ? ? ?int b = 20;
?
? ? ? ?int max = (a > b) ? a : b;
?
? ? ? ?System.out.println("最大值: "+max);
?
? ? ? ?return ;//結束方法,返回到方法的調用處
? }
?
}
~~~
圖解:

##### 1.6 無參數無返回值的方法練習-打印數字是否是偶數
~~~
需求:
定義一個方法,打印輸出該方法內部的數據(方法內部定義的變量)是否是偶數
?
/*
? ?無參數無返回值的方法練習-打印數字是否是偶數
? ? ? ?1.無返回值:
? ? ? ? ? ?方法內部沒有結果數據返回給調用者,返回值類型固定寫為void
? ? ? ? ? ?方法是沒有返回值的,返回值類型固定寫為void
?
? ? ? ?2.無參數:
? ? ? ? ? ?方法沒有參數,不需要寫參數列表,但是必須保留()
?
? ? ? ?3.練習:
? ? ? ?定義一個方法,打印輸出該方法內部的數據(方法內部定義的變量)是否是偶數
?
? ? ? ?4.注意:
? ? ? ? ? ?(1)方法定義完畢后,不調用不執行
? ? ? ? ? ?(2)方法的調用格式:
? ? ? ? ? ? ? ?方法名稱(...);
? ? ? ? ? ?(3)方法定義完畢后,可以調用任意多次
?
*/
public class Demo03PrintOu {
?
? ?public static void main(String[] args) {
?
? ? ? ?System.out.println("main...start...");
?
? ? ? ?//調用方法printOu
? ? ? ?printOu();
?
? ? ? ?System.out.println("main...end...");
?
? }
?
? ?//定義一個方法,打印輸出該方法內部的數據(方法內部定義的變量)是否是偶數
? ?public static void printOu() {
?
? ? ? ?int num = 11;
?
? ? ? ?boolean result = (num%2==0) ? true : false;
?
? ? ? ?System.out.println(num+"是偶數嗎? "+result);
?
? ? ? ?return ;//結束方法,返回到方法的調用處
? }
?
}
~~~
### 第二章 方法詳解【理解】
##### 2.1 方法的格式詳解
~~~
1.方法的概念:
就是將具有獨立功能的代碼塊組織成為一個整體,使其具有特殊功能的代碼集。
將具有特殊功能的一段代碼,使用{}括起來,添加一些必要的修飾符等,起個名字,方便使用
2.方法的格式:
修飾符 返回值類型 方法名稱(數據類型1 變量名稱1,數據類型2 變量名稱2 ...) {
方法功能代碼;
return 結果數據/返回值數據;
}
3.格式解釋:
(1)修飾符: public static 目前固定寫法,先記住
(2)返回值類型: 你調用我的方法后,我方法內部會返還你一個什么樣子的數據
方法的功能代碼執行完畢后,產生的返還給方法調用者的結果數據的類型
舉例:
方法內部如果返回數字100: 返回值類型 int
方法內部如果返回數字6.6: 返回值類型 double
方法內部如果返回true/false: 返回值類型 boolean
(3)方法名稱: 給方法起個名字(標識符: 符合命名規范(小駝峰規則)),方便后期調用
(4)參數列表: 你調用我的這個方法時,需要傳遞給我幾個什么樣子的數據
參數列表...的本質: 就是在定義一個/多個變量,可以接收調用者調用方法時,傳遞的數據
舉例:
定義方法時(): 調用方法時,必須什么都不傳遞
定義方法時(int a): 調用方法時,必須傳遞一個int類型的數據
定義方法時(int a,int b): 調用方法時,必須傳遞兩個int類型的數據
定義方法時(int a,int b,double c): 調用方法時,必須傳遞兩個int類型的數據和一個double類型的數據 而且順序不能錯誤
(5)方法功能代碼: 一行/多行語句
(6)return 結果數據/返回值數據;
a.結束方法
b.把return后面的結果數據/返回值數據 返還給方法的調用者
4.方法的理解: 可以理解為工廠/機器
生產汽車的工廠:
原材料: 發動機,變速箱,車架 ...
產出物: BMW750Li,S600,ZT700 ...
榨汁機:
原材料: 水果,水...
產出物: 果汁
原材料是進入工廠/機器的東西,相當于調用方法是,傳遞給方法的參數 進入方法的東西 參數列表
產出物是從工廠/機器里面出來的東西,相當于調用方法后返回的數據 從方法中出來的東西 返回值--返回值類型
5.定義方法的三要素:
(1)方法名稱:
(2)參數列表:
(3)返回值類型:
~~~
##### 2.2 無返回值有參數的方法練習-打印最大值
~~~
需求:
定義一個方法用于打印兩個int數中的較大數,數據來自于方法參數
/*
無返回值有參數的方法練習-打印最大值
1.無返回值:
分享經驗: 當在需求中明確看到打印/輸出二字,說明該方法內部不需要返回結果,返回值類型固定寫為void
2.有參數:
分享經驗: 當在需求中有不明確/不確定的內容時,需要定義參數
3.練習:
定義一個方法用于打印兩個int數中的較大數,數據來自于方法參數
4.注意:
(1)方法定義完畢后,不調用不執行
(2)方法的調用格式:
方法名稱(...);
(3)方法定義完畢后,可以調用任意多次
5.定義方法的三要素:
(1)方法名稱: printMax
(2)參數列表: int a,int b
(3)返回值類型: void
*/
public class Demo01PrintMax {
public static void main(String[] args) {
System.out.println("main...start...");
//調用方法printMax: 傳遞常量
printMax( 10 , 20 );
System.out.println("main...end...");
}
//定義一個方法用于打印兩個int數中的較大數,數據來自于方法參數
public static void printMax(int a , int b ) {
int max = (a>b) ? a : b;
System.out.println("最大值: "+max);
return ;//結束方法,返回到方法的調用處
}
}
~~~
圖解:

##### 2.3 無返回值有參數的方法練習-打印數字是否是偶數
~~~
需求:
定義一個方法,該方法接收一個int參數,方法內部打印輸出該數據是否是偶數
/*
無返回值有參數的方法練習-打印數字是否是偶數
1.無返回值:
分享經驗: 當在需求中明確看到打印/輸出二字,說明該方法內部不需要返回結果,返回值類型固定寫為void
2.有參數:
分享經驗: 當在需求中有不明確/不確定的內容時,需要定義參數
3.練習:
定義一個方法,該方法接收一個int參數,方法內部打印輸出該數據是否是偶數
4.注意:
(1)方法定義完畢后,不調用不執行
(2)方法的調用格式:
方法名稱(...);
(3)方法定義完畢后,可以調用任意多次
5.定義方法的三要素:
(1)方法名稱: printOu
(2)參數列表: int num
(3)返回值類型: void
*/
public class Demo02PrintOu {
public static void main(String[] args) {
System.out.println("main...start...");
//調用printOu方法
printOu(10 );
System.out.println("main...end...");
}
//定義一個方法,該方法接收一個int參數,方法內部打印輸出該數據是否是偶數
public static void printOu(int num) {
boolean result = (num % 2 == 0) ? true : false;
System.out.println(num+"是偶數嗎? "+result);
return ;//結束方法,返回到方法的調用處
}
}
~~~
##### 2.4 有返回值有參數的方法練習-獲取最大值
~~~
需求:
設計一個方法可以獲取兩個int數的較大值,數據來自于參數
/*
有返回值有參數的方法練習-獲取最大值
1.有返回值:
分享經驗: 當在需求中明確看到獲取/判斷/返回二字,說明該方法內部需要返回結果,必須定義返回值類型
2.有參數:
分享經驗: 當在需求中有不明確/不確定的內容時,需要定義參數
3.練習:
設計一個方法可以獲取兩個int數的較大值,數據來自于參數
4.注意:
(1)方法定義完畢后,不調用不執行
(2)方法的調用格式:
方法名稱(...);
(3)方法定義完畢后,可以調用任意多次
5.定義方法的三要素:
(1)方法名稱: getMax
(2)參數列表: int a,int b
(3)返回值類型: int
*/
public class Demo01GetMax {
public static void main(String[] args) {
System.out.println("main...start...");
//調用getMax方法,傳遞10和20,把方法返回的結果賦值給int變量result
int result = getMax(10 ,20 );
System.out.println("最大值: "+result);
System.out.println("main...end...");
}
//設計一個方法可以獲取兩個int數的較大值,數據來自于參數
/*
你調用我的方法printMax時,必須給我傳遞2個int數據,
我方法內部代碼執行完畢后,返回給你一個int數據
你: 方法的調用者
我: 方法本身
有進有出
*/
public static int getMax(int a , int b ) {
int max = (a > b) ? a : b;
return max;//結束方法,把max中的數據返還給方法的調用處/者
}
}
~~~
##### 圖解分析:

##### 2.5 有返回值有參數的方法練習-獲取數字是否是偶數
~~~
需求:
定義一個方法,該方法接收一個int參數,判斷該數據是否是偶數,并返回真假值
/*
有返回值有參數的方法練習-獲取數字是否是偶數
1.有返回值:
分享經驗: 當在需求中明確看到獲取/判斷/返回二字,說明該方法內部需要返回結果,必須定義返回值類型
2.有參數:
分享經驗: 當在需求中有不明確/不確定的內容時,需要定義參數
3.練習:
定義一個方法,該方法接收一個int參數,判斷該數據是否是偶數,并返回真假值
4.注意:
(1)方法定義完畢后,不調用不執行
(2)方法的調用格式:
方法名稱(...);
(3)方法定義完畢后,可以調用任意多次
5.定義方法的三要素:
(1)方法名稱: getOu
(2)參數列表: int a
(3)返回值類型: boolean
*/
public class Demo02GetOu {
public static void main(String[] args) {
System.out.println("main...start...");
//調用方法getOu,傳遞常量數字10,把結果數據賦值給boolean變量flag
boolean flag = getOu(10);
System.out.println("10 是否是偶數呢? " + flag );
int num = 11;
//調用方法getOu,傳遞變量num,把結果數據賦值給boolean變量flag2
boolean flag2 = getOu( num );
System.out.println(num+" 是否是偶數呢? " + flag2 );
System.out.println("main...end...");
}
//定義一個方法,該方法接收一個int參數,判斷該數據是否是偶數,并返回真假值
/*
你調用我的方法getOu時,必須給我傳遞1個int數據,
我方法內部代碼執行完畢后,返回給你一個boolean數據
你: 方法的調用者
我: 方法本身
有進有出
*/
public static boolean getOu(int a ) {
boolean result = (a%2==0) ? true : false;
return result;//結束方法,把result中的數據返還給方法的調用處/者
}
}
~~~
##### 圖解分析:

##### 2.6 方法的注意事項
~~~
package com.itheima05;
import java.util.Scanner;
/*
方法的注意事項一
1.方法不能嵌套定義(在定義方法的內部又定義了其它方法),可以調用其它方法
2.方法可以嵌套調用
3.定義方法時參數列表根據需求確定(可以有0個/1個/2個/3個...)
4.定義方法時返回值類型根據需求確定
如果沒有返回值,返回值類型固定寫為void
5.如果方法需要參數列表,參數列表中定義的變量的類型根據需求確定
可以是基本類型/引用類型
6.如果分析后發現方法需要返回值類型,那么返回值類型也可以是基本類型/引用類型
*/
public class Demo01MethodNotice {
public static void main(String[] args) {
method();
//調用方法獲取一個int數字保存到int變量a中
int a = getNum();
//調用方法打印一個int數字
printNum(a);
System.out.println("-----------");
printNum( getNum() );
}
//定義打印一個int數字的方法
public static void printNum(int num) {
System.out.println(num);
}
//定義方法獲取一個int數字
public static int getNum() {
return 100;
}
//定義無參數無返回值方法
public static void method() {
System.out.println("method...");
//錯誤: 定義方法時,該方法內部不能在定義其它方法
/*public static void fun() {
System.out.println("fun...");
}*/
//正確的: 定義方法時,該方法內部可以調用其它方法
show();
}
//定義無參數無返回值方法
public static void show() {
System.out.println("show....");
}
}
~~~
~~~
package com.itheima05;
/*
方法的注意事項二
1.返回值類型,必須要和 return 語句返回的數據的類型要匹配,否則編譯失敗 。
2.不能在 return 后面寫代碼, return 意味著方法結束,所有后面的代碼永遠不會執行,屬于無效代碼。
3.void表示無返回值,可以省略return,也可以單獨的書寫return,后面不加數據 return ;
4.如果定義的方法需要返回值,那么只能返回一個數據,不能返回2個及以上的數據
而且可以返回基本類型也可以返回引用類型(根據需求確定)
如果非得返回多個數據,可以把多個數據放在數組中,返回一個數組
*/
public class Demo02MethodNotice {
public static void main(String[] args) {
byte b = 100;
//float a = 6.6;
double d = 'a';
}
public static int getNum2() {
//return 100,200;//return 后面只能寫一個數據
return 100;
}
public static int[] getArray() {
return new int[]{100,200,300};
}
//1.返回值類型,必須要和 return 語句返回的數據的類型要匹配,否則編譯失敗 。
public static boolean getNum() {
//return 100;//100是int類型,返回值類型寫為int
//return 6.6;//6.6是double類型,返回值類型寫為double
//return 'a';//'a'是char類型,返回值類型寫為char
return true;//true是boolean類型,返回值類型寫為boolean
}
//2.不能在 return 后面寫代碼, return 意味著方法結束,所有后面的代碼永遠不會執行,屬于無效代碼。
public static int getMax(int a, int b) {
if(a>b) {
return a;
//System.out.println(".....");//無效代碼
} else {
return b;
//System.out.println(".....");//無效代碼
}
//System.out.println(".....");//無效代碼
}
}
~~~
##### 2.7 有返回值的方法調用方式
~~~
package com.itheima06;
/*
有返回值的方法調用方式 可以賦值/打印/單獨調用
1.賦值調用: 把調用有返回值的方法返回的結果數據保存到左側的變量中 ---推薦使用---
數據類型 變量名稱 = 方法名稱(參數列表...);
2.打印/輸出調用: 把調用有返回值的方法返回的結果數據直接交給輸出語句進行輸出
System.out.println(方法名稱(參數列表...));
3.單獨調用: 把調用有返回值的方法返回的結果數據 既沒有賦值給變量也沒有交給輸出語句 ---不推薦使用---
此時把結果數據丟了,這種調用方式意義不大,但是代碼沒錯哈
方法名稱(參數列表...)
*/
public class Demo01InvokeMethod {
public static void main(String[] args) {
System.out.println("main...start...");
//1.賦值調用: 把調用有返回值的方法返回的結果數據保存到左側的變量中
int result = getSum(10,20);
System.out.println("和: "+result);
System.out.println("和: "+(result*10));
//2.打印/輸出調用: 把調用有返回值的方法返回的結果數據直接交給輸出語句進行輸出
System.out.println(getSum(100,200));
//3.單獨調用: 把調用有返回值的方法返回的結果數據 既沒有賦值給變量也沒有交給輸出語句
getSum(1000,2000);
System.out.println("main...end...");
}
//定義方法,獲取2個int數據之和
public static int getSum(int a , int b ) {
int sum = a + b;
return sum;
}
}
~~~
##### 2.8 無返回值的方法調用方式
~~~
package com.itheima06;
/*
沒有返回值的方法調用方式 只能采用單獨調用,不能使用賦值和打印調用
1.單獨調用: ---只能使用---
方法名稱(參數列表...)
2.賦值調用: 錯誤
2.打印/輸出調用: 錯誤
*/
public class Demo02InvokeMethod {
public static void main(String[] args) {
System.out.println("main...start...");
//1.單獨調用: ---只能使用---
printSum(10,20);
//2.賦值調用: 錯誤
//int result = printSum(100,200);//錯誤: int變量只能保存int數據,但是該方法沒有返回int數據
//void v = printSum(100,200);//錯誤: void根本不是數據類型
//3.打印/輸出調用: 錯誤
//System.out.println(printSum(1000,2000));//錯誤: 因為printSum方法沒有任何數據返回
System.out.println("main...end...");
}
//定義方法,打印2個int數據之和
public static void printSum(int a , int b ) {
int sum = a + b;
System.out.println("和: "+sum);
return ;
}
}
~~~
##### 2.9 形式參數和實際參數的區別
~~~
package com.itheima06;
/*
形式參數和實際參數的區別?
形式參數:
1.概念: 定義方法時,小括號()中定義的參數(變量),給它起個名字,叫做形式參數
2.特點:
(1)在定義時,指定的
(2)是沒有值的,定義時是不能賦值的
(3)當調用方法時,使用調用時傳遞的參數進行賦值
實際參數:
1.概念: 在調用方法時,小括號()中給出的數據常量/變量,,給它起個名字,叫做實際參數
2.特點:
(1)在調用方法時,指定的
(2)實際參數,是在調用方法時使用的,必須要有值,沒有值報錯
注意:
實參和形參 名字是可以相同的,互不影響
*/
public class Demo03MethodParam {
public static void main(String[] args) {
System.out.println("main...start...");
/*
實際參數:
1.概念: 在調用方法時,小括號()中給出的數據常量/變量,,給它起個名字,叫做實際參數
2.特點:
(1)在調用方法時,指定的
(2)實際參數,是在調用方法時使用的,必須要有值,沒有值報錯
*/
//調用printSum方法: 傳遞常量
printSum(100,200);//100和200 叫做實際參數
//調用printSum方法: 傳遞變量
int m = 100,n = 200;
printSum( m , n );//m和n 叫做實際參數
//調用printSum方法: 傳遞變量
int a = 1000, b = 2000;
printSum( a , b );//調用方法時,傳遞的a和b: 叫做實際參數
System.out.println("main...end...");
}
//定義方法,打印2個int數據之和
/*
形式參數:
1.概念: 定義方法時,小括號()中定義的參數(變量),給它起個名字,叫做形式參數
2.特點:
(1)在定義時,指定的
(2)是沒有值的,定義時是不能賦值的
(3)當調用方法時,使用調用時傳遞的參數進行賦值
*/
public static void printSum(int a , int b ) {//a和b 叫做形式參數
int sum = a + b;
System.out.println("和: "+sum);
return ;
}
}
~~~


##### 總結
~~~
能夠知道方法定義的通用格式
public static 返回值類型 方法名稱(參數列表...){
方法體;
return 返回值;
}
能夠知道形參和實參的區別
1.形參:
(1)概念: 在定義方法時,()中定義的變量,叫做形參
(2)特點:
a.是在定義方法時,指定的
b.定義時,是沒有值的,只有被調用時,才會有值
2.實參:
(1)概念: 是在調用方法時,()中指定的數據 常量/變量,叫做實參
(2)特點:
a.是在調用方法時,給出的
b.實參是必須有值的,沒有值就是錯誤
能夠使用方法完成兩個較大數的獲取并調用方法
//1.賦值調用
int max = getMax(10,20);
sout(max);
//2.打印調用
sout(getMax(100,200));
//3.直接/單獨調用 代碼沒有錯誤,但是沒有意義
getMax(1000,2000);
//獲取兩個int數據的較大值
public static int getMax(int a,int b) {
if(a>b) {
return a;
} else {
return b;
}
}
~~~