什么是方法
-
system.out.println():system是个类,out是对象println()是方法;
java方法是语句的集合,他们在一起执行一个功能
-
方法是解决一类问题的步骤的有序集合
-
方法在程序中被创建,在其他地方进行引用
-
一个方法只能完成一个功能,这样有利于我们后续的扩展
方法的组成
-
修饰符,可选择;
-
返回值类型,没有返回值用void;
-
方法名;
-
参数类型:形参,在方法被调用时用于接收外界输入的数据;实参,电泳方法时实际传给方法的数据;
-
方法体
package method;
public class Demo01 {
private static int sum;
//main方法
public static void main(String[] args) {
sum = add(1, 2);
System.out.println(sum);
}
//创建方法,要在main方法的外面,add是返回值,void就是不返回值
//修饰符 返回值类型 方法名
public static int add(int a,int b){
//方法体
return a+b;
}
}
package method;
public class Demo02 {
private static int r;
public static void main(String[] args) {
r = max(20, 20);
System.out.println(r);
}
//比较大小的方法
static int result = 0;
public static int max(int a,int b){
if(a==b){
System.out.println("a==b");
return 0;//终止方法
}
if(a>b){
result = a;
}else{
result = b;
}
return result;//一般将return放在外面
}
}
方法重载
重载就是在一个类中,有相同的函数名称,但形参不同的函数
方法重载的规则
-
方法名称必须相同
-
方法参数列表必须不同
可变参数(method.Demo04)
-
一个方法中只能指定一个可变参数,他必须是方法的最后一个参数,任何普通的参数必须在他之前声明
-
方法声明中,在指定参数类型后加一个省略号...
package method;
//可变参数
public class Demo04 {
private static double[] doubles;
public static void main(String[] args) {
printmax(12,5,68);
printmax(new double[]{15,5,8,58});
}
public static void printmax(double... numbers){//方法声明中,在指定参数类型后加一个省略号...
if(numbers.length==0){
System.out.println("No argument passed");
return;
}
double result = 0;
//排序
for(int i=1;i<numbers.length;i++){
if(numbers[i]>result){
result = numbers[i];
}
}
System.out.println("The Max value is "+result);
}
}
递归(method.Demo05)
-
递归含义:A方法调用A方法,就是自己调用自己
-
利用递归可以用简单的程序解决一些复杂的问题,他通常把一个大型复杂问题转化为一个与原问题相似的规模较小的问题来解决
-
递归结构包括两个部分:
递归头:什么时候不调用自身方法,如果没有头,将陷入死循环;
递归体:什么时候需要调用自身方法
package method;
public class Demo05 {
public static void main(String[] args) {
int result = f(10);
System.out.println(result);
}
//递归
public static int f(int n){
if (n==1){//边界条件,必须有
return 1;
}else{
return n*f(n-1);
}
}
}
-