我有3个课程:Order
,InternalOrder
和OrderTester
。我一直在寻找一段时间以及我一直在看的东西我只是无法尝试将这些例子改为我需要的东西。
所以我遇到了InternalOrder
和OrderTester
类的问题。到目前为止我的代码都是......
public class InternalOrder extends Order {
public static final int DISCOUNT = 40/100;
public InternalOrder(String productName, int quantity) {
super(productName, quantity, DISCOUNT);
}
public void printInternalReport() {
System.out.println("Printing internal report...");
}
}
并且
public class OrderTester {
public static void main(String[] args) {
testCase1();
testCase2();
testCase3();
testCase4();
testCase5();
testCase6();
testCase7();
testCase8();
testCase9();
testCase10();
}
public static void testCase1() {
Order ord = new Order();
System.out.println("Test Number : " + Order.orderNum + " Type of Order : Normal, " + "Product Name : " + "Order Quantity : " + "Discount : ");
}
public static void testCase2() {
Order ord = new Order();
System.out.println("Test Number : " + Order.orderNum + " Type of Order : Normal, " + "Product Name : " + "Order Quantity : " + "Discount : ");
}
嗯,它会进行测试10,但目前情况完全相同。
以下是我需要的东西:
InternalOrder
类将包含订购的Stellar Stationary员工的逻辑
内部固定库存作为其工作要求的一部分。
内部订单自动获得40%的折扣。
InternalOrder
类是扩展Order
类。final static
的{{1}}字段。该字段用作常量
工作人员获得的折扣率应设为40%。现在,我有这两个,但我不完全确定下一部分。
DISCOUNT
常量作为第三个参数
参数。我是否需要在超类中添加任何内容,因为这让我非常困惑。使用DISCOUNT
,我有一个很难导入的表,所以我只会生成几行。
OrderTester
类用于启动程序并测试OrderTester
和。{
Order
个类,以确保它正常工作。
要运行十个测试,每个测试都应该采用自己的静态方法
它们应该通过InternalOrder
调用testCase1()
。每个测试都应该按照测试
下表:
testCase10()
通过这个测试。当我的数量和折扣是整数时,我不确定如何产生“N / A”。
如果您需要我的其他代码,我会在下面发布。
Test Number Type of Order Product Name Order Quantity Discount
1 "Normal" "N/A" "N/A" "N/A"
答案 0 :(得分:4)
此行可能是您的错误来源:
public static final int DISCOUNT = 40/100;
DISCOUNT
为零。
原因是两个整数除法的结果是 trucated 到最近的较低整数 - 小数位被简单地删除。由于40/100
为.4
,因此在删除小数位后,您将留下0
。
您基本上有两种选择:
将其保存为百分比:
public static final int DISCOUNT_PERCENT = 40;
使用可存储小数的类型:
public static final double DISCOUNT = .4;
如果您选择第二个选项,您的生活可能会更容易,因为如果您使用int
,只要您乘以它,您将面临类似的算术问题。