Java定义形式及可变参数实例解析

时间:2021-05-20

这篇文章主要介绍了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 )
  • 表明可以接收多个参数值,多个参数值被当作数组传入。
  • 传入参数形式可以是多个参数以‘,'相隔,也可以传入数组。
  • 只能处于参数列表之后,所以一个方法中最多只能有一个长度可变的形参。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章