*:請使用JAVA JDK 1.8
實體:
class Sales {
public Month getMonth() {
return month;
}
public void setMonth(Month month) {
this.month = month;
}
private Month month;
public double getSales() {
return sales;
}
public void setSales(double sales) {
this.sales = sales;
}
private double sales;
@Override
public String toString() {
return "month->" + getMonth() + ",sales->" + getSales();
}}
計算:
/**
* @author puruidong
* @version 2015-07-10
*/
public class Main {
private static final double monthlySales[] = new double[12];
private static final String[] monthArray = {"January", "February", "March", "April", "May",
"June", "July", "August", "September", "October",
"November", "December"};
private Set<Sales> salesList = new HashSet<Sales>(12);
public void totalSales() {
double count = salesList.stream().mapToDouble(new ToDoubleFunction<Sales>() {
@Override
public double applyAsDouble(Sales value) {
return value.getSales();
}
}).sum();
System.out.println("total->" + count);
}
static void averageSales() {
}
static void highestMonth() {
}
static void lowestMonth() {
}
public void showSales() {
salesList.forEach((x) -> {
System.out.println(x.toString());
});
}
public void getSalesUsingNonStaticMethodWhichBelongsToInstanceAndRecommended(Scanner sc) {
int i = 0;
while (i <= 11) {
System.out.println("Please enter a month to be recorded?(1-12)");
int months = sc.nextInt();
Sales sales = new Sales();
switch (Month.of(months)) {
case JANUARY:
sales.setMonth(Month.JANUARY);
break;
case FEBRUARY:
sales.setMonth(Month.FEBRUARY);
break;
case MARCH:
sales.setMonth(Month.MARCH);
break;
case APRIL:
sales.setMonth(Month.APRIL);
break;
case MAY:
sales.setMonth(Month.MAY);
break;
case JUNE:
sales.setMonth(Month.JUNE);
break;
case JULY:
sales.setMonth(Month.JUNE);
break;
case AUGUST:
sales.setMonth(Month.AUGUST);
break;
case SEPTEMBER:
sales.setMonth(Month.SEPTEMBER);
break;
case OCTOBER:
sales.setMonth(Month.OCTOBER);
break;
case NOVEMBER:
sales.setMonth(Month.NOVEMBER);
break;
case DECEMBER:
sales.setMonth(Month.DECEMBER);
break;
default:
System.err.println("--input error--");
break;
}
if (sales.getMonth() != null) {
sc.reset();
System.out.println("Please enter turnover:");
double turnover = sc.nextDouble();
sales.setSales(turnover);
salesList.add(sales);
}
i++;
}
showSales();
System.out.println("----------------------------");
totalSales();
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Main salesTracking = new Main();
salesTracking.getSalesUsingNonStaticMethodWhichBelongsToInstanceAndRecommended(input);
}//end main
}//end class
結果:
Please enter a month to be recorded?(1-12)
1
Please enter turnover:
1
Please enter a month to be recorded?(1-12)
2
Please enter turnover:
2
Please enter a month to be recorded?(1-12)
3
Please enter turnover:
3
Please enter a month to be recorded?(1-12)
4
Please enter turnover:
4
Please enter a month to be recorded?(1-12)
5
Please enter turnover:
5
Please enter a month to be recorded?(1-12)
6
Please enter turnover:
6
Please enter a month to be recorded?(1-12)
7
Please enter turnover:
7
Please enter a month to be recorded?(1-12)
8
Please enter turnover:
8
Please enter a month to be recorded?(1-12)
9
Please enter turnover:
9
Please enter a month to be recorded?(1-12)
10
Please enter turnover:
10
Please enter a month to be recorded?(1-12)
11
Please enter turnover:
11
Please enter a month to be recorded?(1-12)
12
Please enter turnover:
12
------------------------------
month->DECEMBER,sales->12.0
month->JANUARY,sales->1.0
month->APRIL,sales->4.0
month->AUGUST,sales->8.0
month->MAY,sales->5.0
month->MARCH,sales->3.0
month->JUNE,sales->7.0
month->OCTOBER,sales->10.0
month->NOVEMBER,sales->11.0
month->FEBRUARY,sales->2.0
month->JUNE,sales->6.0
month->SEPTEMBER,sales->9.0
----------------------------
total->78.0
'getSales()'是'main()'方法中的方法。你不能這樣做! – John3136
'getSales'在另一個方法中聲明,你不能做這個Java,你需要移動,所以它在方法的外側 – MadProgrammer
你可能還想看看[將信息傳遞給方法或構造函數]( https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html) – MadProgrammer