十七、java中的方法

一、所謂方法,就是用來解決一類問題的代碼的有序組合,是一個功能模塊。

一般情況下,定義一個方法的語法是:
**訪問修飾符 返回值類型 方法名(參數列表 ){
方法體
}**
其中:

1、 訪問修飾符:方法允許被訪問的權限範圍, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示該方法可以被其他任何代碼調用,其他幾種修飾符的使用在後面章節中會詳細講解滴

2、 返回值類型:方法返回值的類型,如果方法不返回任何值,則返回值類型指定爲 void ;如果方法具有返回值,則需要指定返回值的類型,並且在方法體中使用 return 語句返回值

3、 方法名:定義的方法的名字,必須使用合法的標識符

4、 參數列表:傳遞給方法的參數列表,參數可以有多個,多個參數間以逗號隔開,每個參數由參數類型和參數名組成,以空格隔開

根據方法是否帶參、是否帶返回值,可將方法分爲四類:

Ø 無參無返回值方法

Ø 無參帶返回值方法

Ø 帶參無返回值方法

Ø 帶參帶返回值方法

public class HelloWorld {
    //定義了一個方法名爲 print 的方法,實現輸出信息功能
    public void print() {
        System.out.println("Hello World");
    }
    public static void main(String[] args){
        //在 main 方法中調用 print 方法
        HelloWorld test=new HelloWorld();
        test.print();
    }
}

二、無參無返回值方法的使用
public void showMyLove(){}
三、無參帶返回值

public class show {
     public static void main(String[] args) {
            // 創建對象,對象名爲hello
            show hello=new show();
           // int sum=hello.calcSum();
            System.out.println("兩數之和爲:"+hello.calcSum());
        }
        public int calcSum() {
            int a=5;
            int b=4;
            int sum=a+b;
            return sum;
        }
}

<1>如果方法的返回類型爲 void ,則方法中不能使用 return 返回值!
public void shoeInfo(){
return “java”;
}
<2> 方法的返回值最多只能有一個,不能返回多個值
public int getInfo(){
int score1=12;
int score2=34;
return score1,score2;
}
<3>方法返回值的類型必須兼容,例如,如果返回值類型爲 int ,則不能返回 String 型值
public int getInfo(){
String name=”hello”;
return name;
}

public class show {
     public static void main(String[] args) {
            // 創建對象,對象名爲hello
            show hello=new show();
            double avg =hello.calcAvg(); 
        System.out.println("平均成績爲:" + avg);
        }
        // 定義一個返回值爲double類型的方法
        public double calcAvg() {   
            double java = 92.5;
            double php = 83.0;
            double avg = (java + php) / 2; // 計算平均值         
            // 使用return返回值
            return avg;

        }
}

練習:

public class show {
     public static void main(String[] args) {
            // 創建對象,對象名爲hello
            show hello=new show();
            int max=hello.maxAge();
        System.out.println("最大年齡爲:" + max);
        }
        // 定義一個返回值爲double類型的方法
        public int maxAge() {   
            int[] age={18 ,23 ,21 ,19 ,25 ,29 ,17};
            int max=age[0];
            for(int i=0;i<age.length;i++){
                if(age[i]>max){
                    max=age[i];
                }
            }        
            // 使用return返回值
            return max;
        }
}

運行結果:最大年齡爲:29
四、Java 中帶參無返回值方法的使用

public void show(String name){
System.out.println("歡迎你"+name);
}

HelloWorld hello=new HelloWorld();
hello.show("java");

<1>調用帶參方法時,必須保證實參的數量、類型、順序與形參一一對應
這裏寫圖片描述
<2> 調用方法時,實參不需要指定數據類型,如

hello.show("java");

<3>方法的參數可以是基本數據類型,如 int、double 等,也可以是引用數據類型,如 String、數組等

import java.util.Arrays;
public class HelloWorld{
public static void main(String[] args){
HelloWorld hello=new HelloWorld();
int[] scores={1,2.3};
hello.print(scores);
}
public void print(int[] scores){
System.out.println(Arrays.toStrign(scores));
}
}

<4> 當方法參數有多個時,多個參數間以逗號分隔

public int clac(int num1,int num2){
int num3=num1+num2;
return num3;
}
public class show {
     public static void main(String[] args) {
            // 創建對象,對象名爲hello
            show hello=new show();
            // 調用方法,傳入兩門課程的成績
            hello.calcAvg(94, 81);
        }
        /*
         * 功能:計算兩門課程考試成績的平均分並輸出平均分
         * 定義一個包含兩個參數的方法,用來傳入兩門課程的成績
         */
         public void calcAvg(int num1,int num2){
             double avg=(num1+num2)/2.0;
             System.out.println("平均分:"+avg);
         }
}

運行結果:平均分:87.5
五、Java 中帶參帶返回值方法的使用

public String show(Strign name){
return "歡迎你"+name+"!";
}

調用該方法:

HelloWorld hello=new HelloWorld();
String welcome=hello.shoe("JAVA");
System.out.println(welcome);

練習:

public class show {
     public static void main(String[] args) {
            // 創建對象,對象名爲hello
            show hello=new show();
            int[] scores={79,52,98,81};
            //調用方法,傳入成績數組,並獲取成績的個數
            int count=hello.sort(scores);
            System.out.println("共有"+count+"個成績信息!");
        }
        /*
         * 功能:將考試成績排序並輸出,返回成績的個數
         * 定義一個包含整型數組參數的方法,傳入成績數組
         * 使用Arrays類對成績數組進行排序並輸出
         * 方法執行後返回數組中元素的個數
         */
        public int sort(int[] scores){
            Arrays.sort(scores);
     System.out.println(Arrays.toString(scores));
            //返回數組中元素的個數
            return scores.length;
        }

運行結果:
[52,79,81,98]
共有4個成績信息!
六、方法的重載
如果同一個類中包含了兩個或兩個以上方法名相同、方法參數的個數、順序或類型不同的方法,則稱爲方法的重載,也可稱該方法被重載了。如下所示 4 個方法名稱都爲 show ,但方法的參數有所不同,因此都屬於方法的重載:
這裏寫圖片描述
如何區分調用的是哪個重載方法
當調用被重載的方法時, Java 會根據參數的個數和類型來判斷應該調用哪個重載方法,參數完全匹配的方法將被執行。如:
這裏寫圖片描述
判斷方法重載的依據:

1、 必須是在同一個類中

2、 方法名相同

3、 方法參數的個數、順序或類型不同

4、 與方法的修飾符或返回值沒有關係
練習:

//導入java.util.Arrays;
import java.util.Arrays;
public class HelloWorld {
    public static void main(String[] args) {

         // 創建對象,對象名爲hello
        HelloWorld hello = new HelloWorld();

        // 調用方法並將返回值保存在變量中
        int[] nums = hello.getArray(8);

        // 將數組轉換爲字符串並輸出
        System.out.println(Arrays.toString(nums)); 
    }
    /*
     * 功能:創建指定長度的int型數組,並生成100以內隨機數爲數組中的每個元素賦值
     * 定義一個帶參帶返回值的方法,通過參數傳入數組的長度,返回賦值後的數組
     */
    public int[] getArray(int length) {
        // 定義指定長度的整型數組
        int[] nums = new int[length];

        // 循環遍歷數組賦值
        for (int i=0;i<nums.length;i++) {

            // 產生一個100以內的隨機數,並賦值給數組的每個成員
        nums[i]= (int)(Math.random() * 100);
        }
        return nums; // 返回賦值後的數組
    }
}

ps:Math.random() 生成 0–1 的浮點數。
七、編程練習
定義一個包含整型數組參數的方法,用來接收成績數組,進行成績排序並輸出前三名


import java.util.Arrays;
public class show {
public static void main(String[] args) {
// 創建對象,對象名爲hello
show hello=new show();
int[] scores={89 , -23 , 64 , 91 , 119 , 52 , 73};
hello.sort(scores);
}
//定義方法完成成績排序並輸出前三名的功能
public void sort(int[] scores){
Arrays.sort(scores);
int nums=0;//有效成績的個數
System.out.println("考試成績的前三名爲");
for ( int i = scores.length - 1;i>= 0&&nums<3; i-- ) {
if(scores[i]<0||scores[i]>100){
continue;
}
nums++;
System.out.println(scores[i]);
}
}}
運行結果:
考試成績的前三名爲:
91
89
73

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章