Java中方法参数和多参数方法_验证码 今天进行了方法参数和多参数方法的学习,觉得和C语言函数中形参和实参类似,记录一下 2.4 方法参数 先看一下这个代码

今天进行了方法参数和多参数方法的学习,觉得和C语言函数中形参和实参类似,记录一下

2.4 方法参数

先看一下这个代码

 1 public class Custom {
 2 
 3   public static void main(String[] args) {
 4     random();
 5     code();
 6   }
 7 
 8   /**
 9   *生成6位随机数
10   */
11   public static void random(){
12     int code = (int) ((Math.random()+1) * 100000);
13     System.out.println(code);
14   }
15 
16   /**
17   *生成4位随机数
18   */
19   public static void code(){
20     int code = (int) ((Math.random()+1) * 1000);
21     System.out.println(code);
22   }
23 
24 }

观察可以发现,random和code代码其实没有太大的区别,只有*100000和*1000这个行为的区别。

为了解决这个问题,引入一个概念,那就是方法参数,我们可以把100000和1000这个数字定义为一个int类型的变量,然后赋不同的值,通过方法参数传递过去就能解决了。直接上代码:

public class Custom {

  public static void main(String[] args) {
    random(100000);
    random(1000);
  }

  /**
  *生成随机数
  */
  public static void random(int length){
    int code = (int) ((Math.random()+1) * length);
    System.out.println(code);
  }

}

Java中方法参数和多参数方法_随机数_02

 

 实际上方法参数和声明变量并无区别,只是这个变量是要定义在方法参数这个位置里,编程语言里把这个声明的变量叫做形参

方法调用

如果有了参数声明后,就必须要传入参数, 这个参数可以是变量也可以是值,只是要注意数据类型要匹配,编程语言把这个传递的变量称为实参

// 直接传值
random(100000);

// 传递变量
int len = 100000;
random(len);

2.5 多参数方法

先来看一串代码

public class MessageCode {

  public static void main(String[] args) {
    code(1000);
  }

  public static void code(int len){
      int code = (int)((Math.random()+1)*len);
      System.out.println("亲爱的用户,你本次的验证码是【"+code+"】");
  }

}

在实际工作当中,文案部分经常会被调整,如果每次都要修改方法内容,那么就会导致复用以及维护成本变高,所以我们会把文案也定义成变量。

在这个场景下,我们就需要定义多个参数了,看一下下边的这段代码

public class MessageCode {

  public static void main(String[] args) {
    String text = "亲爱的用户,你本次的验证码是";
    code(text,1000);
  }

  public static void code(String text,int len){
      int code = (int)((Math.random()+1)*len);
      System.out.println(text+"【"+code+"】");
  }

}

注意多个形参之间用逗号隔开。

附加:继续死磕一下随机数的产生,运行几遍后会发现,其实第一位并不随机,因为我们的第一位永远是1,那么就需要让Math.random的结果*9+1来实现

public class MessageCode {

  public static void main(String[] args) {
    String text = "亲爱的用户,你本次的验证码是";
    code(text,1000);
  }

  public static void code(String text,int len){
      int code = (int)(((Math.random()*9)+1)*len);
      System.out.println(text+"【"+code+"】");
  }

}