溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Java中定義形式和可變參數(shù)

發(fā)布時間:2021-06-11 16:21:33 來源:億速云 閱讀:135 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)怎么在Java中定義形式和可變參數(shù),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

Java中的方法類似于面向過程程序設(shè)計中的函數(shù),但與其不同的是,Java中的方法不能獨立存在,它屬于類或?qū)ο?。既然方法屬于類或?qū)ο?,那么,方法的調(diào)用者就必須是類或?qū)ο?。(?dāng)然,之后將會提到的同一個類中方法互相調(diào)用,實際上也是類或?qū)ο笤谧鳛檎{(diào)用者)

還是先上一段代碼:

package com.my.pac05;

public class MethodTest {
  public static void main(String[] args) {
    //通過類直接調(diào)用static修飾的first()方法
    MethodTest.first();
    //MethodTest.second();錯誤
    //方法由static修飾,可以通過類直接調(diào)用static修飾的方法
    //創(chuàng)建實例對象,訪問沒有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修飾的靜態(tài)方法
  public static void first(){
    System.out.println("static: no param...");
  }
  //無參數(shù)(無參無返)
  public void second() {
    System.out.println("no param..");
  }
  //無參有返
  public int secondVal(){
    return 10;
  }
  //一個參數(shù)(有參無返)
  public void third(int param1) {
    System.out.println("one param.. value is " + param1);
  }
  //有參有返
  public int thirdVal(int param1){
    return param1;
  }
  //兩個參數(shù)
  public void fourth(char param1, char param2) {
    System.out.println("two params.. param1 is "
        + param1 + ",param2 is " + param2);
  }
  //多個參數(shù)1
  public void fifth(String...params){
    System.out.println("*type...param*");
    for(String param:params){
      System.out.print(param+" ");
    }
  }
  //錯誤:public void fifth2(String...params,int a )
  //多個參數(shù)2
  public void sixth(String[] params){
    System.out.println("*type[] param*");
    for(String param:params){
      System.out.print(param+" ");
    }
  }
}

方法調(diào)用

使用static修飾的方法

//通過類直接調(diào)用static修飾的fourth()方法
  MethodTest.first();
//也可以通過創(chuàng)建的對象調(diào)用static修飾的方法
  method.first();
//static修飾的靜態(tài)方法
  public static void first(){
    System.out.println("static: no param...");
}
  • 屬于這個類本身。

  • 類和對象都可以調(diào)用。

  • 類和對象調(diào)用的結(jié)果相同。

沒有static修飾的方法

//MethodTest.second();錯誤
//創(chuàng)建實例對象,訪問沒有static修飾的普通方法
  MethodTest method = new MethodTest();
  method.second();
//無static修飾的普通方法
  public void second() {
    System.out.println("no param..");
  }
  • 屬于類的對象,不屬于類本身。

  • 只能由對象作為調(diào)用者。

  • 使用不同對象調(diào)用同一個方法,結(jié)果可能不同。

方法的定義格式

無參無返

//無參無返
  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;
  }

形參個數(shù)可變的方法

采用數(shù)組形參來定義

把數(shù)組作為形參加入形參列表中。類似于我們用的最多的public static void main(String[] args)相當(dāng)于main方法接收一個String類型的數(shù)組,也就是命令行參數(shù),關(guān)于命令行參數(shù),就暫時不提啦。

//多個參數(shù)2
  public void sixth(String[] params){
    System.out.println("*type[] param*");
    for(String param:params){
      System.out.print(param+" ");
    }
  }

只能接收數(shù)組。

可以出現(xiàn)在形參列表的任意位置。

采用JDK1.5新特性來定義

JDK1.5之后,可以在最后一個參數(shù)類型和參數(shù)名之間加上...

 //多個參數(shù)1
  public void fifth(String...params){
    System.out.println("*type...param*");
    for(String param:params){
      System.out.print(param+" ");
    }
  }
  //需要在最后一個參數(shù)類型和參數(shù)名之間?。。?
  //錯誤:public void fifth2(String...params,int a )
  • 表明可以接收多個參數(shù)值,多個參數(shù)值被當(dāng)作數(shù)組傳入。

  • 傳入?yún)?shù)形式可以是多個參數(shù)以‘,'相隔,也可以傳入數(shù)組。

  • 只能處于參數(shù)列表之后,所以一個方法中最多只能有一個長度可變的形參。

看完上述內(nèi)容,你們對怎么在Java中定義形式和可變參數(shù)有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI