何为方法
Java方法是语句的集合,他们在一起执行一个功能
1.方法是解决一类问题的步骤的有序组合
2.方法包含于类或对象中
3.方法在程序中被创建,在其他地方被引用
设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,这样有利于我们后期的扩展。
结构:
修饰符 返回值类型 方法名(参数类型 参数名…){
…
方法体
…
return 返回值(如果没有返回值可不写)
}
代码示例(求合)(类似于c语言的自定义函数)
package com.hao.method;
public class Demo01 {
public static void main(String[] args) {
int sum=add(1,2);
System.out.println(sum);
}
public static int add (int a,int b){
return a+b;
}
}
输出示例
代码示例
package com.hao.method;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
int a;
int b;
int result=-1;
System.out.println("请输入你要比较的两个数:");
Scanner scanner = new Scanner(System.in);
a=scanner.nextInt();
b=scanner.nextInt();
result=max(a,b);
System.out.println(result);
}
//比大小
public static int max(int num1,int num2){
return num1>=num2?num1:num2;//如果num1>=num2输出num1,否则输出num2
}
}
输出示例
方法的重载
规则
1.方法的名称必须相同
2.参数列表必须不同(个数,类型或参数排列顺序)
3.方法的返回类型可以相同也可以不同
4.仅仅返回值类型不同不足以成为方法重载
代码示例
package com.hao.method;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
int a;
int b;
double c;
double d;
int result=-1;
double result2=-1.0;
System.out.println("请输入你要比较的两个整数:");
Scanner scanner = new Scanner(System.in);
a=scanner.nextInt();
b=scanner.nextInt();
result=max(a,b);
System.out.println("最大值为:");
System.out.println(result);
System.out.println("请输入你要比较的两个浮点数:");
c=scanner.nextDouble();
d=scanner.nextDouble();
result2=max(c,d);
System.out.println("最大值为:");
System.out.println(result2);
}
//比大小
public static int max(int num1,int num2){
return num1>=num2?num1:num2;
}
public static double max(double num1,double num2){
return num1>=num2?num1:num2;
}
}
输出示例
递归
1.递归就是A方法调用A方法
2.递归结构包括两个部分:
1)递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
2)递归体:什么时候需要调用自身方法
代码示例
package com.hao.method;
public class Demo06 {
public static void main(String[] args) {
System.out.println(f(5));
}
public static int f(int N){
if(N==1){
return 1;
}else{
return N*f(N-1);
}
}
}
输出示例