Java定义形式及可变参数实例解析
这篇文章主要介绍了Java定义形式及可变参数实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java中的方法类似于面向过程程序设计中的函数,但与其不同的是,Java中的方法不能独立存在,它属于类或对象。既然方法属于类或对象,那么,方法的调用者就必须是类或对象。(当然,之后将会提到的同一个类中方法互相调用,实际上也是类或对象在作为调用者)
还是先上一段代码:
packagecom.my.pac05;
/**
*@authorSummerday
*@date2019/12/115:30
*/
publicclassMethodTest{
publicstaticvoidmain(String[]args){
//通过类直接调用static修饰的first()方法
MethodTest.first();
//MethodTest.second();错误
//方法由static修饰,可以通过类直接调用static修饰的方法
//创建实例对象,访问没有static修饰的普通方法
MethodTestmethod=newMethodTest();
method.second();
//接收secondVal方法的返回值
intsecondValue=method.secondVal();
System.out.println(secondValue);//10
method.third(2);
//接收thirdVal方法的返回值
intthirdValue=method.thirdVal(20);
System.out.println(thirdValue);//20
method.fourth('a','b');
method.fifth("hello","what's","your","name");
System.out.println();
method.sixth(newString[]{"hello","what's","your","name"});
}
//static修饰的静态方法
publicstaticvoidfirst(){
System.out.println("static:noparam...");
}
//无参数(无参无返)
publicvoidsecond(){
System.out.println("noparam..");
}
//无参有返
publicintsecondVal(){
return10;
}
//一个参数(有参无返)
publicvoidthird(intparam1){
System.out.println("oneparam..valueis"+param1);
}
//有参有返
publicintthirdVal(intparam1){
returnparam1;
}
//两个参数
publicvoidfourth(charparam1,charparam2){
System.out.println("twoparams..param1is"
+param1+",param2is"+param2);
}
//多个参数1
publicvoidfifth(String...params){
System.out.println("*type...param*");
for(Stringparam:params){
System.out.print(param+"");
}
}
//错误:publicvoidfifth1(String...params,inta)
//多个参数2
publicvoidsixth(String[]params){
System.out.println("*type[]param*");
for(Stringparam:params){
System.out.print(param+"");
}
}
}
方法调用
使用static修饰的方法
//通过类直接调用static修饰的fourth()方法
MethodTest.first();
//也可以通过创建的对象调用static修饰的方法
method.first();
//static修饰的静态方法
publicstaticvoidfirst(){
System.out.println("static:noparam...");
}
- 属于这个类本身。
- 类和对象都可以调用。
- 类和对象调用的结果相同。
没有static修饰的方法
//MethodTest.second();错误 //创建实例对象,访问没有static修饰的普通方法 MethodTestmethod=newMethodTest(); method.second();
//无static修饰的普通方法
publicvoidsecond(){
System.out.println("noparam..");
}
- 属于类的对象,不属于类本身。
- 只能由对象作为调用者。
- 使用不同对象调用同一个方法,结果可能不同。
方法的定义格式
无参无返
//无参无返
publicvoidsecond(){
System.out.println("noparam..");
}
无参有返
//无参有返
publicintsecondVal(){
return10;
}
有参无返
//有参无返
publicvoidthird(intparam1){
System.out.println("oneparam..valueis"+param1);
}
有参有返
//有参有返
publicintthirdVal(intparam1){
returnparam1;
}
形参个数可变的方法
采用数组形参来定义
把数组作为形参加入形参列表中。类似于我们用的最多的publicstaticvoidmain(String[]args)相当于main方法接收一个String类型的数组,也就是命令行参数,关于命令行参数,就暂时不提啦。
//多个参数2
publicvoidsixth(String[]params){
System.out.println("*type[]param*");
for(Stringparam:params){
System.out.print(param+"");
}
}
只能接收数组。
可以出现在形参列表的任意位置。
采用JDK1.5新特性来定义
JDK1.5之后,可以在最后一个参数类型和参数名之间加上...
//多个参数1
publicvoidfifth(String...params){
System.out.println("*type...param*");
for(Stringparam:params){
System.out.print(param+"");
}
}
//需要在最后一个参数类型和参数名之间!!!
//错误:publicvoidfifth1(String...params,inta)
- 表明可以接收多个参数值,多个参数值被当作数组传入。
- 传入参数形式可以是多个参数以‘,'相隔,也可以传入数组。
- 只能处于参数列表之后,所以一个方法中最多只能有一个长度可变的形参。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。