我正在上 java 课,我必须做一个作业,内容如下:
创建一个名为 Purchase 的类。每个采购都包含一个发票编号、销售金额和销售税金额。包括发票编号和销售额的设置方法。在销售金额的 set() 方法中,将销售税计算为销售金额的 7.5%(使用采购类中的静态文件)。还包括一种显示方法,可以在格式良好的输出显示中显示购买的详细信息。将文件另存为 Purchase.java。编译并运行您的程序,直到它可以工作并且输出看起来不错。按照课程文档中的说明添加必要的文档,然后将您的 .java 文件附加到该作业中
我的解决方案如下:
import java.util.*;
public class Purchase {
//Properties of Purchase class - static
private static int invoiceNumber;
private static double salesAmount;
private static double salesTax;
//setter for invoiceNumber
public static void setInvoiceNum(int invNo){
invoiceNumber = invNo;
}
//setter for salesAmount
public static void setSalesAmount(double salesAmnt){
salesAmount = salesAmnt;
salesTax = 0.075*salesAmnt;
}
//public static method to display purchase info
public static void displaySalesInfo(){
System.out.println("Invoice Number: " + Purchase.invoiceNumber);
System.out.println("Sales Amount: " + Purchase.salesAmount);
System.out.println("Sales Tax: " + Purchase.salesTax);
}
//main method that makes use of the static properties and display method
public static void main (String[] args) {
//ask user to input purchase details
Scanner scan = new Scanner(System.in);
System.out.println("Enter your invoice Number:" );
int inv = scan.nextInt();
System.out.println("Enter your Sales Amount:");
double sales = scan.nextDouble();
// send the user submitted purchase details to the setter methods and call display method
setInvoiceNum(inv);
setSalesAmount(sales);
displaySalesInfo();
}
}
这是我老师的评论:“对于这个作业,你要使用采购类中的静态字段提供 7.5% 的销售税。在你提交的代码中,你使用了数字文字,大多数人会认为这是一种非常糟糕的编程习惯.你确实设置了静态变量salesTax,但是你给它的值是基于实例方法参数的,这是一个逻辑错误。只有税率是静态的,其他字段都不应该是静态的,否则每次购买都是不管买什么都一样。提交的分配代码表明你不了解静态字段的概念。
我就是不明白??他说我不了解静态场..我有那么无知吗?这简直令人尴尬。请说明一下。