方法的最大好处是可以进行重复调用,但是至于说那些操作要形成方法,这些都要根据你的实际项目经验而自我总结的。
限制条件:在主类中定义,并且由主方法直接调用的方法形式。
public static 返回类型 方法名称([参数类型 变量, ......]) { 方法体代码; [return [返回值];] }
在定义方法的时候对于方法的返回值有一下的两类:
范例:定义一个没有返回值,没有参数的方法
public class TestDemo { public static void main(String[] args) { print(); //主方法里面直接调用方法 } public static void print() { System.out.println("Hello World!"); //定义方法 } }
范例:定义一个有参数无返回值的方法
public class TestDemo { public static void main(String[] args) { print("Hello"); //主方法里面直接调用方法 print(" world"); print("!"); } public static void print(String msg) { //定义方法 System.out.print(msg); } }
范例:有参数有返回值的方法
public class TestDemo { public static void main(String[] args) { int result = add(10, 20); System.out.println(result); //既然方法有返回值,那么这些返回值也可以直接输出 System.out.println(add(100, 200)); } public static int add(int x, int y) { //定义方法 return x + y; } }
但是在定义方法的时候有一点特别要注意,如果某一个方法上使用了void定义,那么该方法可以直接用return来结束调用。一般而言,这种return的处理往往需要结合if判断来实现。
public class TestDemo { public static void main(String[] args) { print(10); print(20); } public static void print(int x) { //定义方法 if(x == 20) //表示的是方法结束的判断 return; //此语句之后的代码不再执行 System.out.println("x = " + x); } }
对于第一次接触方法的人来讲,先将语法记住,至于怎么用,需要时间来消化
方法重载指的是:方法名称相同,参数的类型和个数不同。
范例:实现方法重载
public class TestDemo { public static void main(String[] args) { //此时将根据参数的类型和个数的不同执行不同的方法体 System.out.println(add(10, 20)); System.out.println(add(30, 40, 50)); System.out.println(add(1.1, 2.1)); } public static int add(int x, int y) { return x + y; } //此时方法名称相同,参数的个数不同 public static int add(int x, int y, int z) { return x + y + z; } public static double add(double x, double y) { return x + y; } }
在进行方法重载的时候有一个重要的原则:要求方法的返回值类型一定要相同。
范例:观察如下程序
public class TestDemo { public static void main(String[] args) { //此时将根据参数的类型和个数的不同执行不同的方法体 System.out.println("hello"); //输出字符串 System.out.println(1); //输出整形 System.out.println(1.1); //输出浮点型 System.out.println('A'); //输出字符 System.out.println(true); //输出布尔 } }
证明:System.out.println()是一个被重载的方法
方法的递归调用指的是一个方法自己调用自己的形式。一般如果要进行方法的递归操作往往都具备有以下的特点:
范例:实现1 ~ 100的累加操作
public class TestDemo { 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.[main()调用] 第1次执行sum()方法 return 100 + sum(99);
2.[sum()递归] 第2次执行sum()方法 return 99 + sum(98);
3.[sum()递归] 第3次执行sum()方法 return 98 + sum(97);
4.…
5.[sum()递归] 倒数第2次执行sum()方法 return 2 + sum(1);
6.[sum()递归] 倒数第1次执行sum()方法 return 1;
范例:实现60!,这个结果太大,应该使用double。
public class TestDemo { public static void main(String[] args) { System.out.println(mul(60)); } public static double mul(int num) { if(num == 1) return 1; return num * mul(--num); } }
通过代码可以发现使用while循环的操作其实大部分都可以更换为递归,之所以使用递归主要是一个方法可以执行的操作很多,而且结构要好。
————————————————
版权声明:本文为CSDN博主「mrbacker」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mrbacker/article/details/79181869