第三章 方法

第三章 方法

方法(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);
    }
    /**
     *  两个整型加法计算
     * @param x
     * @param y
     * @return
     */
    public static int sum(int x, int y) {
        return x + y;
    }
    /**
     *  实现三个整数加法的计算
     * @param x
     * @param y
     * @param z
     * @return
     */
    public static int sum(int x, int y, int z) {
        return x + y + z;
    }
    /**
     *  实现两个double型数据相加
     * @param x
     * @param y
     * @return
     */
    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));
    }

    /**
     * 实现阶乘数据的累加操作
     * @param num
     * @return
     */
    public static double sum(int num) {
        if (num == 1) {
            return factorial(1);
        }
        return factorial(num) + sum(num - 1);
    }
    /**
     *  定义方法实现阶乘计算
     * @param num 根据传入的数字实现阶乘
     * @return 阶乘结果
     */
    public static double factorial(int num) {
        if (num == 1) {
            return 1;
        }
        return num * factorial(num - 1);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值