我的作业告诉我这样做....
一个。创建一个名为Purchase的类。每次购买都包含发票号, 销售金额和销售税金额。包括发票的设置方法 数量和销售额。在销售额的set()方法中,计算 销售税为销售额的5%。还包括显示的显示方法 购买的详细信息。将文件另存为Purchase.java。
湾创建一个声明Purchase对象并提示用户的应用程序 购买详情。当您提示发票号时,请不要让 用户继续,直到输入介于1,000和8,000之间的数字。 当您提示销售金额时,请在用户输入之后再继续 一个非负价值。创建有效的Purchase对象后,显示 对象的发票编号,销售金额和销售税。将文件另存为 CreatePurchase.java。
这就是我到目前为止......
import java.util.*;
public class Purchase{
public double invoiceNumber;
public double saleAmount;
public double salesTax;
public void setInvoice(double number){
this.invoiceNumber = number;
}
public void saleAmount(double sale){
this.salesTax = sale*.05;
this.saleAmount = sale;
}
public void displayPurchase(){
System.out.print("Invoice Number " + invoiceNumber + " Sale Amount " + saleAmount + " Sales Tax " + salesTax);
}
}
import java.util.*;
public class CreatePurchase extends Purchase{
Scanner input = new Scanner(System.in);
double inputSale = input.nextDouble();
double inputNumber = input.nextDouble();
public void valueChecker(){
if(1000 >= inputSale && inputSale <= 8000){
saleAmount(inputSale);
invoiceChecker();
}
else if(inputSale <= 0){
System.out.print(" Not a valid invoice ");
}
}
public void invoiceChecker(){
setInvoice(inputNumber);
displayPurchase();
}
public static void main(String[] args){
}
}
为什么这不起作用?
答案 0 :(得分:8)
因为您没有在main
方法中调用任何内容。您的main
方法为空。
public static void main(String[] args){
// you need to call other methods from here
CreatePurchase purchaseObject = new CreatePurchase();
purchaseObject.valueChecker();// or whatever method you want to call depending upon your logic.
}
答案 1 :(得分:1)
import java.util.Scanner;
public class CreatePurchase extends Purchase {
public void invoiceChecker(double inputnumber, CreatePurchase cp) {
cp.setInvoice(inputnumber);
cp.displayPurchase();
}
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
double inputSale = input.nextDouble();
double inputNumber = input.nextDouble();
CreatePurchase cp = new CreatePurchase();
System.out.println(inputSale + " " + inputNumber);
if (inputSale >= 1000.0 && inputSale <= 8000.0) {
cp.saleAmount(inputSale);
cp.invoiceChecker(inputNumber, cp);
} else if (inputSale <= 0.0) {
System.out.print(" Not a valid invoice ");
}
}
}
TestInput和Output;
1500.2
3.0
1500.2 3.0
Invoice Number 3.0 Sale Amount 1500.2 Sales Tax 75.01
答案 2 :(得分:0)
1)您是否收到编译时错误? 方法调用java搜索主要方法,但在当前执行 main方法,它没有任何要执行的内容或NIL调用
public static void main(String[] args){
}
因此不会执行任何操作。使用所需的输入从main方法调用方法,以便主要方法将通过调用调用执行。