Java方法(代码复用)

发布于:2024-04-23 ⋅ 阅读:(76) ⋅ 点赞:(0)

方法

方法名,返回值,参数。
基本类型,数组,自定义类型作为数组参数和返回值的情况。
进而递归方法。

看一段代码


public class Fruit01 {
    public static void main(String[] args) {
        System.out.println(computeMoneyWithoutPrivileges("apple", 10));
        System.out.println(computeMoneyWithPrivileges("apple", 10,0.1));
    }
    public static double computeMoneyWithoutPrivileges(String type, int numbers) {
        double prices = 0;
        switch (type) {
            case "apple":
                prices = 6.5;
                break;
            case "banana":
                prices = 4.0;
                break;
            case "strawberry":
                prices = 10.5;
                break;
            default:
                break;
        }
        return prices * numbers;
    }

    public static double computeMoneyWithPrivileges(String type, double numbers
            , double discount) {
        double prices = 0;
        switch (type) {
            case "apple":
                prices = 6.5;
                break;
            case "banana":
                prices = 4.0;
                break;
            case "strawberry":
                prices = 10.5;
                break;
            default:
                break;
        }
        return prices * numbers * discount;
    }
}

这段代码2个方法,逻辑大部分重复,导致将来修改苹果价格或添加一种类型时,需要改动的地方有2处,这里是提取方法的好时机。


public class Fruit02 {
    public static void main(String[] args) {
        System.out.println(computeMoneyWithoutPrivileges("apple", 10));
        System.out.println(computeMoneyWithPrivileges("apple", 10,0.1));
    }
    public static double computeMoneyWithoutPrivileges(String type, int numbers) {
        double prices = getPrices(type);
        return prices * numbers;
    }
    public static double computeMoneyWithPrivileges(String type, double numbers
            , double discount) {
        double prices = getPrices(type);
        return prices * numbers * discount;
    }
    private static double getPrices(String type) {
        double prices = 0;
        switch (type) {
            case "apple":
                prices = 6.5;
                break;
            case "banana":
                prices = 4.0;
                break;
            case "strawberry":
                prices = 10.5;
                break;
            default:
                break;
        }
        return prices;
    }


}


网站公告

今日签到

点亮在社区的每一天
去签到