Java--方法的了解和使用

1、什么是方法呢?
想法就类似于C语言当中的函数,是为了完成或者说是实现某种功能而定义的。
2、使用方法的好处?
(1)模块化的组织代码,使功能模块化(当代码规模比较复杂的时候);
(2)方法可以重复使用,可以被多次调用,减少了代码的重复书写;
(3)使用方法来实现某种功能,代码更简单;
(4)在Java中有很多现有的方法,可以直接调用;(比如说数组排序的方法Arrays.sort() 调用此方法就可以使数组元素按升序排序),因此就不需要再写代码实现此功能。
3、方法的构成
修饰符 返回值类型 方法名(参数列表){
函数体;//多行
}
方法三要素:返回值类型、方法名称、参数列表
方法名命名规则:采用小驼峰(第一个单词首字母小写,后面的单词首字母大写,比如 addNum 这样的命名形式)
修饰符:public protected (default) private
返回值类型:void 表示无返回值类型、int、boolean…
参数列表可以有多个(int a,int b) 参数列表需要说明参数类型和参数名
4、方法调用:当前方法写完后,在另一个方法内部进行调用,且一个方法可以被多次调用
当方法执行完毕后(遇到return语句),就执行完毕,回到方法调用位置继续往下执行。
5、方法重载(针对同一个类:一个函数同时兼容多种参数的情况)
1、方法名称一样
2、参数列表不相同(参数个数或参数类型)
3、返回值不做要求,对方法重载无影响。
下面用一个求和的例子来说明什么是方法重载:

package demomethod03;

import java.util.Scanner;

/**
 * 求和的重载
 * 在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码,求出结果

 */
public class AddNum {
    public static void main(String[] args) {
        System.out.println("请输入两个整数:");
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        int b=sc.nextInt();
        System.out.println(add(a,b));
        System.out.println("请输入三个小数");
        double c=sc.nextDouble();
        double d=sc.nextDouble();
        double e=sc.nextDouble();
        System.out.println(add(c,d,e));

    }

    private static int add(int a, int b) {
        int sum=0;
        sum=a+b;
        return sum;
    }
    private static double add(double c,double d,double e){
        double sum=0.0;
        sum=c+d+e;
        return sum;
    }
}

6、方法递归
递归:采用分治的算法,分而治之,大事化小
要求:(1)一个程序要调用自己本身
(2)有一个趋于终止的条件

递归的原理:函数的运行需要开辟栈帧,只要运行一个函数,就需要在栈上开辟内存。
栈只有1M或2M,方法的调用需要在栈上开辟内存,不停地调用的话,栈就会溢出,因此递归必须有终止条件。
用递归的方法来求阶乘

import java.util.Scanner;

/*
求n的阶乘  用递归
 */
public class Test02 {
    public static void main(String[] args) {
        System.out.println("请输入你要求几的阶乘n:");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int ret = fac(n);
        System.out.println("阶乘为"+ret);
    }
    public static int fac(int n) {
        if(n==1){
            return 1;
        }
        return n*fac(n-1);
    }
}


猜你喜欢

转载自blog.csdn.net/Subuprogrammer/article/details/104760573