方法(Method,在很多语言中也被称为“函数”)指的是一段可以被重复调用的代码块,利用方法可以实现庞大程序的拆分,是一种代码重用的技术手段,并且更加适合于代码维护。
3.1 方法基本定义public static 返回值类型 方法名称(参数类型 参数变量, ....) { 方法体(本方法要执行的 *** 作); [return [返回值];] }
方法定义中的返回值与传递的参数类型均为Java中定义的数据类型(基本数据类型、引用数据类型),在方法中可以进行返回数据的处理,如果要返回数据则可以使用return,return所返回的数据类型与方法定义的返回值类型相同,如果不返回数据,则该方法可以使用void进行声明。
范例:定义一个无参数接收并且无返回值的方法
public class JavaDemo { public static void main(String[] args) { printInfo(); } public static void printInfo() { System.out.println("**************"); System.out.println("www.baidu.com"); System.out.println("**************"); } }
范例:定义一个有参数有返回值的方法
public class JavaDemo { public static void main(String[] args) { String str = payAndGet(20.2); System.out.println("str = " + str); } public static String payAndGet(double money) { if (money >= 10.0) { return "钱够了"; } else { return "钱不够"; } } }
在方法中return语句除了可以返回处理结果之外,也可以结合分支语句实现方法的结束调用。
范例:使用return结束方法调用
public class JavaDemo { public static void main(String[] args) { sale(20); } public static void sale(int amount) { if (amount > 0) { return; //如果数量出现错误,后续代码就不执行了 } System.out.println(amount); } }
如果传入的参数不满足条件时,可以使用return结束方法的调用。
3.2 方法重载方法重载是方法名称进行重用的一种技术形式,其最主要的特点为“方法名称相同,参数的类型或个数不同”,在调用时会根据传递的参数类型和个数不同执行不同的方法体。
范例:定义方法重载
public class JavaDemo { public static void main(String[] args) { int sum = sum(10, 20); int sum1 = sum(10, 20, 30); System.out.println("sum = " + sum); System.out.println("sum1 = " + sum1); } 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 sum(double x, double y) { return (int)(x + y); } }
注意:方法重载时考虑到标准性一般都建议统一返回值类型。
3.3 方法递归调用递归调用是一种特殊的调用形式,指的是方法自己调用自己的形式,如图4-3所示,但是在进行递归 *** 作的时候必须满足以下的几个条件。
- 递归调用必须有结束条件。
- 每次调用的时候都需要根据需求改变传递的参数内容。
范例:实现1~100数字的累加
public class JavaDemo { public static void main(String[] args) { System.out.println(sum(100)); } public static int sum(int num) { if (num == 1){ return 1; } return num + sum(num - 1); } }
范例:计算1!+ 2!+ 3!+ 4!+ 5!+ …+ 90!
public class JavaDemo { public static void main(String[] args) { System.out.println(sum(90)); } public static double sum(int num) { if (num == 1) { return factorial(1); } return factorial(num) + sum(num - 1); } public static double factorial(int num) { if (num == 1) { return 1; } return num * factorial(num - 1); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)