第4章 方法

方法(Method,在许多语言中也被称为函数)指的是一段可以被重复调用的代码块,利用方法可以实现庞大程序的拆分扥,是一种代码重用的技术手段,并且更加适合于代码维护。

4.1 方法基本定义

在程序开发中经常会遇到重复代码的定义,为了方便管理这些重复代码,就可以通过方法结构保存这些重复代码,实现可重复调用:
public static 返回值类型 方法名称(参数类型 参数变量,...)
{
方法体(本方法要执行若干操作);
return 返回值;
}

方法定义中的返回值与传递的参数类型均为Java中定义的数据类型(基本数据类型、引用数据类型),在方法之中可以进行返回数据的处理,如果要返回数据则可以使用return来描述,return所返回的数据类型与方法的返回值类型相同,如果不返回数据,则该方法可以使用void声明。

提示:关于方法的定义格式
在进行方法的定义时本处使用了static关键字之所以这样定义是因为当前方法需要定义在主类之中,并且江油主方法直接刁颖,会在后续进行说明。
        另外,Java中方法名称有严格的明明要求:第一个单词首字母小写,然后每个字幕首字母大写,例如printInfo()、getMessage()都是合格的方法名称。

范例:定义一个无参数接受并且无返回值的方法

public class JavaDemo
{
public static void main(String args[])
{
printInfo();
printInfo();
}
public static void printinfo()
{
System.out.println("***");
System.out.println("111"):
}
}
范例:定义一个有参数右返回值的方法
public class JavaDemo
{
public static void main(String args[])
{
String result=payAndGet(10.0);
System.out.println(result);
System.out.println(payAndGet(result));
}

public static String payAndGet(double money)
{
if(money>=10.0)
{
return "购买一份快餐"+(money-10.0);
}else
{
return "sorry"
}
}
}
范例:使用return结束方法调用

public class JavaDemo
{
public static void main(String args[])
{
scale(3);
scale(-3);
}
public static void sale(int amount)
{
if(amount<=0)
{
return;
}
System.out.pritnln("销售出"+amout+"本图书");
}
}

4.2 方法重载

方法重载时方法名称进行重用的一种技术形式,其最主要的特点为“方法名称相同,参数类型或个数不同”,在调用时会根据传递的参数类型和个数不同执行不同的方法体。
        如果说现在有一个方法名称,有可能要执行数据的加法操作,例如,一个sum()方法,它可能执行2个整数相加,也有可能执行3个整数的相加,或者可能执行2个小数的相加,很明显,在这样的退傲剑下,一个方法无法满足要求,需要sum()方法定义多个不同的方法体,所以此时需要方法重载概念的支持。

范例:定义方法重载
public class JavaDemo
{
public static void main(String args[])
{
int resultA=sum(10,20);
int resultB=sum(10,20,30);
int resultC=sum(11.2,25.3);
System.out.println(resultA);
System.out.println(resultB);
System.out.println(resultC);
}
public static int sum(int x,int y)
{
return x+y;
}

public static int sum(int x,int y,int z)
{
return x+y+z;
}
 

public static int num(double x,double y)
{
return (int) (x+y);
}
}
 

提问:关于sum()方法的返回值问题
        在本程序进行sum()方法重载时有这样一个方法 public static int sum(double x,doubley),该方法接受2个double数据,但最终反悔了in数据。
回答:方法重载时考虑到标准型一般都建议统一返回值类型
在方法重载的概念时没有对返回值进行强制性越苏,这意味着方法重载时返回值可以根据用户的需求自由定义。
实际上在Java中提供的许多类库之中也都存在方法重载的使用,例如屏幕打印System.out.println()中的println()方法(也包括print()方法)就属于方法重载的应用。

范例:观察输出操作的重载实现
public class JavaDemo
{
public static void main(String args[])
{
System.out.println("hello");
System.out.println(1);
System.out.println(10.2);
}
}

4.3 方法递归调用

递归调用是一种特殊的调用形式,指的是方法自己调用自己的形式,但是在进行递归操作的时候必须满足一下的几个条件:递归调用必须有结束条件,每次调用都需要根据需求改变传递的参数内容。

递归调用是迈向数据结构开发的第一步,但是如果读者要真想掌握熟练递归操作,那么需要大量的代码积累,换个角度来讲,在应用层项目开发中一般很少出现递归操作,因为一旦处理不当会导致内存溢出问题的出现。

范例:实现1-100数字的累加

public class JavaDemo
{
public static void main(String args[])
{
sum(100);
}

public static int sum(int num)
{
if(num==1)
return 1;
return num+sum(num-1);
}
}

范例:计算1!+2!+3!...90!

public class JavaDemo
{

public static void main(String args[])
{
sum(90);
}

public static int fac(int num)
{
if(num==1)
return 1;
return num*fac(num-1);
}

public static sum(int num)
{
if(num==1);
return fac(1);
return fac(num)+sum(num-1);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值