1. 程式人生 > 程式設計 >Java定義形式及可變引數例項解析

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","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 )
  • 表明可以接收多個引數值,多個引數值被當作陣列傳入。
  • 傳入引數形式可以是多個引數以‘,'相隔,也可以傳入陣列。
  • 只能處於引數列表之後,所以一個方法中最多隻能有一個長度可變的形參。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。