Java方法之定義形式及可變參數

Java方法之定義形式及可變參數

Java中的方法相似於面向過程程序設計中的函數,但與其不一樣的是,Java中的方法不能獨立存在,它屬於類或對象。既然方法屬於類或對象,那麼,方法的調用者就必須是類或對象。(固然,以後將會提到的同一個類中方法互相調用,實際上也是類或對象在做爲調用者)
仍是先上一段代碼:數組

package com.my.pac05;

/**
 * @author Summerday
 * @date 2019/12/1 15:30
 */
public class MethodTest {
    public static void main(String[] args) {
        //經過類直接調用static修飾的first()方法
        MethodTest.first();
        //MethodTest.second();錯誤
        //方法由static修飾,能夠經過類直接調用static修飾的方法
        //建立實例對象,訪問沒有static修飾的普通方法
        MethodTest method = new MethodTest();
        method.second();
        //接收secondVal方法的返回值
        int secondValue = method.secondVal();
        System.out.println(secondValue);//10
        
        method.third(2);
        //接收thirdVal方法的返回值
        int thirdValue = method.thirdVal(20);
        System.out.println(thirdValue);//20
        
        method.fourth('a', 'b');
        method.fifth("hello","what's","your","name");
        System.out.println();
        method.sixth(new String[]{"hello","what's","your","name"});
    }

    //static修飾的靜態方法
    public static void first(){
        System.out.println("static: no param...");
    }
    //無參數(無參無返)
    public void second() {
        System.out.println("no param..");
    }
    //無參有返
    public int secondVal(){
        return 10;
    }
    //一個參數(有參無返)
    public void third(int param1) {
        System.out.println("one param.. value is " + param1);
    }
    //有參有返
    public int thirdVal(int param1){
        return param1;
    }
    //兩個參數
    public void fourth(char param1, char param2) {
        System.out.println("two params.. param1 is "
                + param1 + ",param2 is  " + param2);
    }
    //多個參數1
    public void fifth(String...params){
        System.out.println("*type...param*");
        for(String param:params){
            System.out.print(param+" ");
        }
    }
    //錯誤:public void fifth1(String...params,int a )
    //多個參數2
    public void sixth(String[] params){
        System.out.println("*type[] param*");
        for(String param:params){
            System.out.print(param+" ");
        }
    }
}

方法調用

使用static修飾的方法

//經過類直接調用static修飾的fourth()方法
    MethodTest.first();
//也能夠經過建立的對象調用static修飾的方法
    method.first();
//static修飾的靜態方法
    public static void first(){
        System.out.println("static: no param...");
}
  • 屬於這個類自己。
  • 類和對象均可以調用。
  • 類和對象調用的結果相同。

沒有static修飾的方法

//MethodTest.second();錯誤
//建立實例對象,訪問沒有static修飾的普通方法
    MethodTest method = new MethodTest();
    method.second();
//無static修飾的普通方法
    public void second() {
        System.out.println("no param..");
    }
  • 屬於類的對象,不屬於類自己。
  • 只能由對象做爲調用者。
  • 使用不一樣對象調用同一個方法,結果可能不一樣。

方法的定義格式

無參無返

//無參無返
    public void second() {
        System.out.println("no param..");
    }

無參有返

//無參有返
    public int secondVal(){
        return 10;
    }

有參無返

//有參無返
    public void third(int param1) {
        System.out.println("one param.. value is " + param1);
    }

有參有返

//有參有返
    public int thirdVal(int param1){
        return param1;
    }

形參個數可變的方法

採用數組形參來定義

把數組做爲形參加入形參列表中。相似於咱們用的最多的public static void main(String[] args)至關於main方法接收一個String類型的數組,也就是命令行參數,關於命令行參數,就暫時不提啦。函數

//多個參數2
    public void sixth(String[] params){
        System.out.println("*type[] param*");
        for(String param:params){
            System.out.print(param+" ");
        }
    }
  • 只能接收數組。
  • 能夠出如今形參列表的任意位置。

採用JDK1.5新特性來定義

JDK1.5以後,能夠在最後一個參數類型和參數名之間加上...命令行

//多個參數1
    public void fifth(String...params){
        System.out.println("*type...param*");
        for(String param:params){
            System.out.print(param+" ");
        }
    }
    //須要在最後一個參數類型和參數名之間!!!
    //錯誤:public void fifth1(String...params,int a )
  • 代表能夠接收多個參數值,多個參數值被看成數組傳入。
  • 傳入參數形式能夠是多個參數以‘,’相隔,也能夠傳入數組。
  • 只能處於參數列表以後,因此一個方法中最多隻能有一個長度可變的形參。

參考書籍:《瘋狂Java》講義、《Java核心技術卷I》設計

相關文章
相關標籤/搜索