我在練習中遇到了一些問題,我想知道是否有人可以提供幫助。這裏是問題:從類中調用計算的變量
創建一個名爲Purchase的類。每筆採購都包含發票號碼,銷售金額和銷售稅金額。包括髮票號碼和銷售金額的設置方法。在銷售金額的set()方法中,將銷售稅計算爲銷售額的5%。還包括顯示購買細節的顯示方法。保存爲Purchase.class b。創建一個聲明一個Purchase對象並提示用戶購買細節的應用程序。當您提示輸入發票號碼時,請勿讓用戶繼續操作,直至輸入介於1,000和8,000之間的數字。當您提示銷售金額時,請不要繼續,直到用戶輸入非負值。創建有效的購買對象後,顯示對象的發票編號,銷售額和銷售稅。
這是我爲我的採購類
import javax.swing.JOptionPane;
import java.util.Scanner;
public class Purchase
{
//variables
public static int invoice;
public static double saleAmount;
public static double saleTax;
//get&set for Invoice
public void setInvoice(int x)
{
invoice = x;
}
public int getInvoice()
{
return invoice;
}
//get&set for saleAmount
public void setSaleAmount(double y)
{
saleTax = y * 0.05;
saleAmount = y;
}
public double getSaleAmount()
{
return saleAmount;
}
//get for saleTax
public double getSaleTax()
{
return saleTax;
}
//display method
public void display(int invoice, double saleAmount, double saleTax)
{
System.out.println("Invoice number: " + invoice + '\n' + "Sale's Amount: " + saleAmount + '\n' + "Sale's Tax: " + saleTax);
}
}
代碼爲CreatePurchase類的代碼
import javax.swing.JOptionPane;
import java.util.Scanner;
public class CreatePurchase
{
public static void main(String[] args)
{
Purchase purchase1 = new Purchase();
//scanner for sales amount
Scanner inputDevice = new Scanner(System.in);
System.out.println("Please enter the sale amount: ");
Purchase.saleAmount = inputDevice.nextDouble();
//loop for saleAmount
while (Purchase.saleAmount < 1)
{
System.out.print('\n'+ "Error, your sale amount needs to be more than 0. Please enter a valid sale amount: >> ");
Purchase.saleAmount = inputDevice.nextDouble();
}
//scanner for invoice
System.out.println("Please enter an invoice number between 1000 and 8000: ");
Purchase.invoice = inputDevice.nextInt();
//loop for invoice
while (Purchase.invoice < 999 || Purchase.invoice > 8000)
{
System.out.print('\n'+ "Error, please enter a valid invoice number between 1000 and 8000: >> ");
Purchase.invoice = inputDevice.nextInt();
}
//display result
JOptionPane.showMessageDialog(null, "Your invoice number is " + Purchase.invoice + '\n'
+ "Your sale tax is: " + Purchase.saleTax + '\n'
+ "Your grand total is: " + Purchase.saleAmount);
}
}
正如你可以看到,當您運行的第二類中,saleAmount不包括額外5%的銷售稅和銷售稅仍然爲0.可能是一件非常愚蠢的事情,但我不知道從哪裏開始。
如果您打算爲類屬性設置getter和setter,那麼您應該使屬性爲'private',以便在setter中進行任何計算必須進行計算,因爲您無法直接在類之外設置屬性 –