什么是函数?

函数是一段可以完成某个独立功能的代码,我们只需要写一次,就可以被多次调用,提高了代码的复用性。

为什么需要函数呢?

将大的、复杂的问题分解为若干个小的、简单的问题去求解,能有有效地帮助我们轻松解决复杂问题。

函数设计三要素:

(1)函数名:见名思议,也就是根据功能定名字,按照驼峰写法xxxYyyZzz

(2)参数:调用者传递过来的数据的接收方式,参数可以有多个,也可以没有

(3)返回值类型[void]:返回值类型就是函数执行后要给调用者的数据类型,如果指定了数据类型就必须要有return,如果是void就可以不指定return。

return结果:就要看是否有返回值,如果有返回值的类型,就必须要有一个return被执行,return后面的代码不被执行

 

函数(方法)的语法:
<public> <static> 返回值类型[void] 方法名([数据类型 参数名,数据类型 参数名,....]){

方法体

[return 结果]

}

<>表示有的时候可以不写

[ ]表示的是定义函数的另外一种情况下的语法

例子:

public class E201_06_01_输出100以内的素数 {
    public static void main(String[] args) {
        for (int n = 2; n <= 100; n++) {
            if (isPrime(n)) {
                System.out.printf("%5d", n);
            }
        }
    }
    /**
     * 判断素数
     * @param n 待判断的数
     * @return true-是素数,false-不是素
     */
    private static boolean isPrime(int n) {
        for (int sun = 2; sun <= Math.sqrt(n); sun++) {
            if (n % sun == 0) {
                return false;
            }
        }
        return true;
    }
}

形式参数:在定义函数时给的参数叫做形式参数(形参),参数叫什么名字与功能无关,当然需要遵循见名思议的原则。

实际参数:在调用函数时给的参数叫做实际参数(实参),实参在调用时必须具有实际的值。

我们调用方法是通过值传递的方式把实参的值传递给方法的形参,而且Java语言中只有值传递

 

方法的重载

重载(overload):在一个类中有两个或者两个以上同名的方法,但是参数不同(两个方法的参数的个数不同,参数的类型不同),跟返回值无关

重载的目的:在于提高代码的可读性和节省命名的词

例如:

public class OverloadDemo {
        public static void main(String[] args) {
            test();
            int a = test(5);
            int b = test(7, 8);
            double c = test(7.5,5);
        }
        public static void test(){
            System.out.println("第一个方法");
        }
        public static int test(int a){
            System.out.println("第一次重载");
            int c = a+1;
            return c;
        }
        public static int test(int a,int b){
            System.out.println("第二次重载");
            int c = a+b;
            return c;
        }
        public static double test(double a,int b){
            System.out.println("第三次重载");
            double c = a-b;
            return c;
        }
    }