方法
方法名,返回值,参数。
基本类型,数组,自定义类型作为数组参数和返回值的情况。
进而递归方法。
看一段代码
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;
}
}