在上一章节讲到了简单的方法调用数组,这一章讲解return 返回值。
对于我们方法的命名也是有规范的,一个合格的技术员在命名方法的时候,大家注意,有两个单词的时候首字母一定要进行大写。就比如我们看到的printInfo这个方法,printInfo为Java的关键字,所以在这里就进行了小写,那么Info呢首字母大写。
接下来我们来讲解一下return返回值。返回到方法执行。看以下代码
public class key
{
public static void main(String args[]){
int one = addOne(10,20); //调用整数的加法操作。
float tow = addTow(10.3f,13.5f); //调用float单精度浮点相加操作
System.out.print("输出One的结果"+one+"\n"); //输出one
System.out.print("输出Tow的结果"+tow); //输出tow
}
public static int addOne(int x, int y){ //定义一个返回的类型 addOne 定义数据类型变量
int temp = 0 ; //定义一个为整型的变量temp并初始值为0
temp = x+y ; //将x+y的值赋值给temp
return temp ; //返回temp的值到方法处
}
public static float addTow(float x ,float y){ //定义一个返回的类型 addTow定义数据类型变量
float temp = 0; //定义一个为单精度浮点的变量temp并初始值为0
temp = x+y; //将x+y的值赋值给temp
return temp; //返回temp的值到方法处
}
接下来我们来看以下return 怎么来结束方法:
}
在以上代码我们得出一个结论,可以使用return这个关键字对进行返回值。值得注意的是,我们要返回float必须要在方法调用处使用float对里面的方法进行定义。
接下来我们讲解的是方法重载。
什么是方法重载呢?
简单的说:方法重载 方法名字相同,但是参数的类型,和参数不同。通过传递参数的个数以及类型的不同完成方法的调用。
public class key
{
public static void main(String args[]){
int one = add(10,15);
int two = add(10,15,13);
float there = add(10.3f,15,5f);
System.out.print("输出One:"+one);
System.out.print("\n");
System.out.print("输出Two:"+two);
System.out.print("\n");
System.out.print("输出there:"+there);
}
public static int add(int x ,int y){
int temp = 0;
temp = x+y ;
return temp;
}
public static float add(float x , float y,float z){
float temp = 0 ;
temp = x+y+z ;
return temp ;
}
public static int add(int x,int y,int z){
int temp = 0;
temp = x + y - z;
return temp;
}
}
这段的代码我就不给解释了。基本上跟着课程学习的朋友都能看得懂。那么这段代码执行了三次add的方法,也就是调用了三次同样的方法名,但是不会出错。这是为什么呢?刚才我们有讲过方法重载,看了吧,虽然方法的名字都一样,但是在Java中自动的去识别传递参数的个数以及传递的类型,进行放入计算。这下明白了吧。
public class key
{
public static void main(String args[]){
System.out.print("1.在调用fun方法之前:");
fun(4); //调用fun方法
System.out.print("2.在调用fun方法之后:");
}
public static void fun(int x){ //定义一个方法 返回的值是整型 定义fun方法 int x
System.out.print(" \n "); //输出换行
System.out.print("3.进入fun方法:"); //输出3.进入fun方法:
System.out.print(" \n "); //输出换行
if(x==10){ //判断x是否等于10 值为真 执行什么?
return; //结束方法,返回被调用处
}
System.out.print("4.正常执行完毕fun()方法。");
}
}
可以看以上的注解,使用return进行结束结束,当fun方法里的常量等于10的时候执行return,所以此段代码在我们打印的时候只出现输出123并没有出现4,这个是因为这个程序并没有执行完,而是通过if执行了 return结束方法导致没有执行打印4.。
我们可以将代码给修改一下我们再看结果:
public class key
{
public static void main(String args[]){
System.out.print("1.在调用fun方法之前:");
fun(10); //调用fun方法
System.out.print("2.在调用fun方法之后:");
}
public static void fun(int x){ //定义一个方法 返回的值是整型 定义fun方法 int x
System.out.print(" \n "); //输出换行
System.out.print("3.进入fun方法:"); //输出3.进入fun方法:
System.out.print(" \n "); //输出换行
if(x==10){ //判断x是否等于10 值为真 执行什么?
return; //结束方法,返回被调用处
}
System.out.print("4.正常执行完毕fun()方法。");
}
}
此时 调用方法的常量不再等于10了。那么这个方法就跳过if语句里面的代码进行执行。跳过if里的代码执行,就意味着不执行return ,执行另外一个。那么好,这段代码输出完整。
接下来我们讲解的是递归调用:
public class key
{
public static void main(String args[]){
System.out.print("计算的结果是:"+sum(100));
}
public static int sum(int num){
if (num==1)
{
return 1;
}
else{
return num+sum(num-1),
}
}
}
以上的代码就相当于:num+sum(99)+sum(98)…………直到1;
。