Мы только начинаем узнавать о массивах в моем курсе Java, поэтому у меня возникают проблемы. Я хочу умножить «количество» на «стоимость», чтобы распечатать общую стоимость, но прямо сейчас она выводит 0 для totalCost. Вот водитель:Как добавить два значения в массив?
import java.util.Scanner;
public class Problem2 {
public static void main(String[] args){
String purchase, date;
double quantity, cost;
Scanner myScanner = new Scanner (System.in);
System.out.println("How many different types of items are you purchasing?");
int answer = myScanner.nextInt();
myScanner.nextLine(); // pick up the enter key
Basket[] myBasket = new Basket[answer];
for(int j = 0; j < answer; j++) {
System.out.println("Please enter the item you purchased.");
purchase = myScanner.nextLine();
System.out.println("Please enter the date.");
date = myScanner.nextLine();
System.out.println("Please enter the quantity.");
quantity = myScanner.nextFloat();
System.out.println("Please enter the cost.");
cost = myScanner.nextFloat();
myScanner.nextLine(); // pick up the enter key
myBasket[j] = new Basket(purchase, date, quantity, cost);
}
for (int i = 0; i< answer; i++)
{
System.out.println(myBasket[i]);
}
}
}
Вот класс Basket:
import java.text.NumberFormat;
public class Basket {
private String purchase, date;
private double quantity, cost, totalCost;
NumberFormat fmt = NumberFormat.getCurrencyInstance();
public Basket(String purchase, String date, double quantity, double cost)
{
this.purchase = purchase;
this.date = date;
this.quantity = quantity;
this.cost = cost;
}
public void Calculations()
{
totalCost = cost * quantity;
}
public String toString()
{
return "Purchase: " + purchase
+ "\nDate: " + date
+"\nQuantity: " + quantity
+"\nCost:" + fmt.format(totalCost);
}
}
На различной ноте, это не отличная идея есть отдельный метод, который вы должны вызвать, чтобы получить правильное внутреннее состояние. Вероятно, лучше вообще не делать 'totalCost' полем, но если вам нужно, вы должны называть' расчеты' (имена методов начинаются с строчного) от конструктора и любых сеттеров. – chrylis
Когда вы называете 'Расчеты'? Мне бы лучше иметь метод «getTotalCost» и возвращать результат вычисления, а не назначать ему значение поля – MadProgrammer
И в чем ваш вопрос? – Jens