1.方法概述和格式說明
- A:為什麼要有方法:提高程式碼的複用性
- B:什麼是方法:完成特定功能的程式碼塊。
-
C:方法的格式
修飾符 返回值型別 方法名(引數型別 引數名1,引數型別 引數名2...) { 方法體語句; return 返回值; }
-
D:方法的格式說明
- 修飾符:目前就用 public(許可權修飾符) static(狀態修飾符)。後面我們再詳細的講解其他的修飾符。
- 返回值型別:就是功能(方法)結果的資料型別。void(沒有返回值型別),返回值決定返回值型別;
- 方法名:符合命名規則即可。方便我們的呼叫。main(主要的)
-
引數:
* 形式引數;就是方法定義的,用於接收實際引數的。 (a,b) * 實際引數:就是實際參與運算的。(10,20)
- 引數型別:就是引數的資料型別(基本資料型別:四類八種)
- 引數名:就是變數名(合法的識別符號)
- 方法體語句:就是完成功能的程式碼。(System.out.println(“Method”);)
- return:結束方法的。
- 返回值:就是功能的結果,由return帶給呼叫者:返回值是什麼型別,返回值型別就是該型別。 void可省略。
public class JavaMethod {
public static void main(String args []){
System.out.println("Method");
}
}
2.方法之求和案例及其呼叫(方法的注意事項)
- A:寫一個方法:1,明確返回值型別2,明確引數列表
- B:案例:求兩個資料之和的案例
- C:方法呼叫圖解
- 一個類如果有主方法,我們稱之為測試類
-
D:方法呼叫(有具體返回值)
- a:單獨呼叫,一般來說沒有意義,所以不推薦。
- b:輸出呼叫,但是不夠好。因為我們可能需要針對結果進行進一步的操作。
- c:賦值呼叫,推薦方案。
-
E:案例演示
- a:方法不呼叫不執行
- b:方法與方法是平級關係,不能巢狀定義
- c:方法定義的時候引數之間用逗號隔開
- d:方法呼叫的時候不用在傳遞資料型別
- e:如果方法有明確的返回值,一定要由return帶回一個值
public class JavaMethod {
public static void main(String args []){
int sum = add(10,20); //第一步:賦值呼叫,呼叫了add方法,並傳入了實際引數10,20分別傳給形式引數,將sum賦值給s
System.out.println("sum = " + sum); //第五步:上下兩個方法中的sum非同一個sum,不能互相訪問
//add(30,40); //單獨呼叫,一般來說沒有意義,所以不推薦。
//System.out.println(add(30,40)); //輸出呼叫,一般不推薦
int sum2 = add(30,40);
System.out.println("sum2 = " + sum2);
}
//返回值型別int;明確引數列表int a,int b
public static int add(int a,int b) { //第二步:將10和20,分別傳給a,b
//int sum = a + b; //第三步:執行語句:將a和b相加後的結果,賦值給sum
//return sum; //第四步:由return將sum返回給呼叫者
return a + b;
}
}
3.方法的練習
-
A:案例演示
- 需求:鍵盤錄入兩個資料,返回兩個數中的較大值
import java.util.Scanner;
public class JavaMethod {
public static void main(String args []){
Scanner sc = new Scanner(System.in);
System.out.println("請輸入第一個整數");
int x = sc.nextInt();
System.out.println("請輸入第二個整數");
int y = sc.nextInt();
int max = getMax(x,y);
System.out.println("max = " + max);
}
//返回值型別int;引數列表int a,int b
public static int getMax(int a,int b) {
int max = (a > b)? a : b;
return max;
//return a > b ? a : b;
}
}
-
B:案例演示
-
需求:鍵盤錄入兩個資料,比較兩個數是否相等
import java.util.Scanner;
public class JavaMethod {public static void main(String args []){ Scanner sc = new Scanner(System.in); System.out.println("請輸入第一個整數"); int x = sc.nextInt(); System.out.println("請輸入第二個整數"); int y = sc.nextInt(); boolean b = isEquals(x,y); System.out.println(b); } //返回值型別boolean;引數列表int a,int b public static boolean isEquals(int a,int b) { //isEquals是否相等 return a == b; }
}
-
4.方法之輸出矩形星形及其呼叫
-
A:案例演示
- 需求:根據鍵盤錄入的行數和列數,在控制檯輸出矩形星形
-
B:方法呼叫:(無具體返回值型別的,用void來接收)
- 單獨呼叫
- 輸出呼叫(錯誤)
- 賦值呼叫(錯誤)
- ~注意:如果返回值型別是void,return可以省略,即使省略,系統也會預設給加上,形式是: return;
import java.util.Scanner;
class MethodDemo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入行數:");
int row = sc.nextInt();
System.out.println("請輸入列數:");
int column = sc.nextInt();
printStar(row,column); //返回值型別是void的方法,要單獨呼叫
//void v = printStar(row,column); //賦值呼叫不可以
//System.out.println(printStar(row,column)); //輸出呼叫也是不可以的void
}
/*
在控制檯輸出列印矩形星型
1.明確返回值型別(因為是在控制檯列印輸出,經分析沒有具體的返回值型別) void
2.明確引數列表 int a,int b
*/
public static void printStar(int a,int b) {
for (int i = 1;i <=a ; i++ ) { //外迴圈控制行數
for (int j = 1;j <= b ;j ++ ) { //內迴圈控制列數
System.out.print("*");
}
System.out.println();
}
return;
}
}
5.方法的練習
-
A:案例演示
- 需求:根據鍵盤錄入的資料輸出對應的乘法表
import java.util.Scanner;
class MethodDemo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個整數,範圍在1-9");
int num = sc.nextInt();
/*
1.明確返回值型別 void
2.引數列表 int a
*/
print99(num);
public static void print99(int a) {
for (int i = 1;i <= a ; i ++ ) {
for (int j = 1; j <= i ; j ++ ) {
System.out.print(j + "*" + i + "=" + j * i + " ");
}
System.out.println();
}
}
}
6.方法過載概述和基本使用
A:方法過載概述
* 求和案例
* 2個整數
* 3個整數
* 4個整數
B:方法過載:
* 在同一個類中,方法名相同,引數列表不同。與返回值型別無關。
* 引數列表不同:
* A:引數個數不同
* B:引數型別不同
* C:引數的順序不同(算過載,但是在開發中不用)
class OverLoad{
public static void main(String[] args) {
int sum1 = add(10,20);
System.out.println(sum1);
int sum2 = add(10,20,30);
System.out.println(sum2);
double sum3 = add(11.2,15.2,18.5);
System.out.println(sum3);
}
/*
求兩個整數的和
1.返回值型別 int
2.引數列表 int a,int b
*/
public static int add(int a,int b) {
return a + b;
}
/*
求兩個整數的和
1.返回值型別 int
2.引數列表 int a,int b,int c
*/
public static int add(int a,int b,int c) {
return a + b + c;
}
/*
求兩個小數的和
1.返回值型別 double
2.引數列表 double a,double b,double c
*/
public static double add(double a,double b,double c) {
return a + b + c;
}
}
7.方法過載練習比較資料是否相等
A:案例演示
* 需求:比較兩個資料是否相等。
* 引數型別分別為兩個int型別,兩個double型別,並在main方法中進行測試
class OverLoad4{
public static void main(String[] args) {
boolean b1 = isEquals(10,10);
System.out.println(b1);
}
/*
求兩個整數的和
1.返回值型別 boolean
2.引數列表 int a,int b
*/
public static boolean isEquals(int a,int b) {
return a == b;
}
/*
求兩個整數的和
1.返回值型別 boolean
2.引數列表 double a,double b
*/
public static boolean isEquals(double a,double b) {
return a == b;
}
}