第三章 方法

第三章 方法,第1张

第三章 方法 第三章 方法

方法(Method,在很多语言中也被称为“函数”)指的是一段可以被重复调用的代码块,利用方法可以实现庞大程序的拆分,是一种代码重用的技术手段,并且更加适合于代码维护。

3.1 方法基本定义
public static 返回值类型 方法名称(参数类型 参数变量, ....) {
	方法体(本方法要执行的 *** 作);
	[return [返回值];]	
}

方法定义中的返回值与传递的参数类型均为Java中定义的数据类型(基本数据类型、引用数据类型),在方法中可以进行返回数据的处理,如果要返回数据则可以使用return,return所返回的数据类型与方法定义的返回值类型相同,如果不返回数据,则该方法可以使用void进行声明。

范例:定义一个无参数接收并且无返回值的方法

public class JavaDemo {
    public static void main(String[] args) {
        printInfo();
    }
    public static void printInfo() {
        System.out.println("**************");
        System.out.println("www.baidu.com");
        System.out.println("**************");
    }
}

范例:定义一个有参数有返回值的方法

public class JavaDemo {
    public static void main(String[] args) {
        String str = payAndGet(20.2);
        System.out.println("str = " + str);
    }
    public static String payAndGet(double money) {
        if (money >= 10.0) {
            return "钱够了";
        } else {
            return "钱不够";
        }
    }
}

在方法中return语句除了可以返回处理结果之外,也可以结合分支语句实现方法的结束调用。

范例:使用return结束方法调用

public class JavaDemo {
    public static void main(String[] args) {
        sale(20);
    }
    public static void sale(int amount) {
        if (amount > 0) {
            return;  //如果数量出现错误,后续代码就不执行了
        }
        System.out.println(amount);
    }
}

如果传入的参数不满足条件时,可以使用return结束方法的调用。

3.2 方法重载

方法重载是方法名称进行重用的一种技术形式,其最主要的特点为“方法名称相同,参数的类型或个数不同”,在调用时会根据传递的参数类型和个数不同执行不同的方法体。

范例:定义方法重载

public class JavaDemo {
    public static void main(String[] args) {
        int sum = sum(10, 20);
        int sum1 = sum(10, 20, 30);
        System.out.println("sum = " + sum);
        System.out.println("sum1 = " + sum1);
    }
    
    public static int sum(int x, int y) {
        return x + y;
    }
    
    public static int sum(int x, int y, int z) {
        return x + y + z;
    }
    
    public static int sum(double x, double y) {
        return (int)(x + y);
    }
}

注意:方法重载时考虑到标准性一般都建议统一返回值类型。

3.3 方法递归调用

递归调用是一种特殊的调用形式,指的是方法自己调用自己的形式,如图4-3所示,但是在进行递归 *** 作的时候必须满足以下的几个条件。

  • 递归调用必须有结束条件。
  • 每次调用的时候都需要根据需求改变传递的参数内容。

范例:实现1~100数字的累加

public class JavaDemo {
    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);
    }
}

范例:计算1!+ 2!+ 3!+ 4!+ 5!+ …+ 90!

public class JavaDemo {
    public static void main(String[] args) {
        System.out.println(sum(90));
    }

    
    public static double sum(int num) {
        if (num == 1) {
            return factorial(1);
        }
        return factorial(num) + sum(num - 1);
    }
    
    public static double factorial(int num) {
        if (num == 1) {
            return 1;
        }
        return num * factorial(num - 1);
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5691852.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存