1. 程式人生 > >Java基礎——方法

Java基礎——方法

方法

方法

在我們的日常生活中,會遇到各種各樣的問題,而我們需要尋求這些問題的解決辦法,也就是解決方法,所以方法在日常生活中也是無處不在的。在java中,我們去解決某個問題並找到這個問題的解決辦法就是方法。方法中封裝的是解決問題的具體代碼實現的功能,而我們只需要調用這個方法名就可以去解決這個問題。像之前學過的隨機數的調用,就是調用的nextInt()方法來實現隨機數的產生。

定義方法的格式:

修飾符 返回值類型 方法名(參數列表…){

功能實現的具體代碼

return;

}

方法格式分析:

修飾符:用於修飾該方法的各種狀態,修飾符比較多,現在先是固定的,會面會逐漸進行接觸的,public static

public權限修飾符,權限最大化,static,靜態的,也是數據共享的意思。

返回值類型:方法實現功能返回結果的數據類型,返回結果什麽類型就寫什麽類型。

方法名:方法名的定義遵循標識符的規則,第一個單詞都小寫,後面每個單詞的首字母都大寫。

參數列表:是否有未知數據的參與,沒有就不定義

return:有兩個作用,其一是返回這個功能的結果,其二是用於結束方法。

下面通過一個代碼來演示方法定義的具體情況:

/*
需求:計算長方形的面積(在方法中實現這個功能)
思路:1、定義一個方法getArea()在方法中實現
           2、修飾符:public static
           3、返回值類型:計算長方形的面積返回後是一個整數類型的值,int
           4、方法名:遵循標識符的定義規則getArea()
           5、參數列表:在功能實現過程中,有未知的數據參與運算,長和寬,int length,int weight
           6、return的是面積。
           7、調用該方法的功能,在main方法中進行調用
*/
public class MethodDemo{
         public static void main(String[] args){
                   //調用getArea()方法,傳入長和寬的值
                   int area = getArea(4,8);
                   //打印該面積的值
                   System.out.println("該長方形的面積是:"+area);
         }
         //定義方法,實現功能的封裝
         public static int getArea(int length,int weight){
                   //計算面積的功能實現
                   //int area = length * weight;
                   return length * weight;
         }
}

方法定義練習

練習一:打印三行三列的“*”矩形

/*
需求:打印三行三列的”*“矩形
思路:1、定義功能方法
           2、修飾符:public static
           3、返回值類型:在控制臺打印圖形即可 ,沒有返回值類型void
           4、方法名:符合標識符的定義規則即可,printRect()
           5、參數列表:已經規定是三行三列,不需要定義參數列表
*/
public class MethodDemo_1{
         public static void main(String[] args){
                   //調用功能方法
                   printRect();
         }
         //定義功能方法
         public static void printRect(){
                   //使用for循環遍歷打印矩形
                   for(int i=0;i<3;i++){
                            for(int j=0;j<3;j++){
                                     System.out.print("*");
                            }
                            System.out.println();
                   }
         }
}

練習二:鍵盤輸入一個數並打印這個數

/*
需求:鍵盤輸入一個數並打印這個數
思路:1、定義功能方法
           2、修飾符:public static
           3、返回值類型:需要返回輸入的這個數,int
           4、方法名:遵循標識符的定義規則即可,getNumber()
           5、參數列表:沒有未知數據的參與,只需要自己在鍵盤輸入這個數即可
*/
import java.util.Scanner;
public class MethodDemo_2{
         public static void main(String[] args){
                   //調用功能方法
                   //int num = getNumber();
                   System.out.println(getNumber());
         }
         //定義方法功能
         public static int getNumber(){
                   //定義Scanner類,完成鍵盤的輸入
                   Scanner sc = new Scanner(System.in);
                   //int number = sc.nextInt();
                   //返回輸入的數據給調用者
                   return sc.nextInt();
         }
}

練習三:打印指定M行,每行N*號的矩形

/*
需求:打印指定M行,每行N個*號的矩形
思路:1、定義功能方法
           2、修飾符:public static
           3、返回值類型:打印圖形,無返回值void
           4、方法名:符合標識符的定義規則即可,printRect()
           5、參數列表:需要自己去指定圖形的行數和列數,int m,int n
           6、調用功能方法
*/
public class MethodDemo_3{
         public static void main(String[] args){
                   //調用功能方法
                   printRect(6,7);
         }
         //定義功能方法
         public static void printRect(int m,int n){
                   //通過for循環遍歷打印圖形
                   for(int i=0;i<m;i++){
                            for(int j=0;j<n;j++){
                                     System.out.print("*");
                            }
                            System.out.println();
                   }
         }
}

練習四:求三個數的平均數

/*
需求:求三個數的平均數
思路:1、定義功能方法
           2、修飾符:public static
           3、返回值類型:求平均數結果需要返回這三個數的平均數的值,int
           4、方法名:符合標識符的定義規則即可,getAvg()
           5、參數列表:需要三個未知數據的參與,int a,int b,int c
           6、調用功能方法
*/
public class MethodDemo_4{
         public static void main(String[] args){
                   //調用功能方法
                   int avg = getAvg(4,8,9);
                   System.out.println("三個數的平均值是:"+avg);
         }
         //定義功能方法
         public static int getAvg(int a,int b,int c){
                   //返回計算後的值
                   return (a+b+c)/3;
         }
}

定義方法時的一些註意事項:

1、 方法寫在類中,方法與方法不能嵌套,也就是說一個方法不能寫進另一個方法中,

2、 在調用方法時方法名和參數列表一定不能寫錯,否則失敗

3、 方法的返回值如果是void,ruturn可以省略不寫,但是方法中return後面一定不能寫其他語句,否則會訪問不到編譯失敗

4、 方法的返回值類型必須和return的類型相匹配。

5、 方法不能夠重復定義。

6、 在調用方法時,方法的返回值是void,調用的時候不能使用輸出語句,沒用返回值打印數據也就不存在,邏輯錯誤。

方法的重載

所謂的重載就是在同一個類中,功能的方法名可以一樣,但是它的參數列表裏面的數據類型和數據個數不一樣。

下面的代碼演示了重載的情況:

/*
重載的情況:求數據的和,個數和類型不確定,所以需要用到重載
*/
public class MethodOverload{
         public static void main(String[] args){
                   //調用功能
                   int sum1 = add(3,5);
                   int sum2 = add(4,5,6);
                   double sum3 = add(2.1,6.3);
                   System.out.println(sum1);
                   System.out.println(sum2);
                   System.out.println(sum3);
         }
         //求和的功能實現
         public static int add(int a,int b){
                   return a+b;
         }
         public static int add(int a,int b,int c){
                   return a+b+c;
         }
         public static double add(double a,double b){
                   return a+b;
         }
}

重載的註意事項

1、 方法的參數列表必須不同(數據個數、數據類型、數據順序)

2、 方法的重載與變量名無關

3、 方法的重載和返回值類型無關

4、 方法的重載和修飾符無關

所以方法的重載只和參數列表有關,和其他無關


Java基礎——方法