为什么public static void main()不起作用?

时间:2015-04-10 08:26:09

标签: java

我的作业告诉我这样做....

一个。创建一个名为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){
      }
}

为什么这不起作用?

3 个答案:

答案 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方法调用方法,以便主要方法将通过调用调用执行。