Java代码有什么问题?

时间:2011-11-08 23:36:03

标签: java

我真的很喜欢编程,在netbeans上我删除了所有其他文本,我只有以下内容,为什么程序不运行?

我得到的错误是,找不到主类。

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package findcost2;
 public class Main 

 /* a program to calculate and display the cost of a product after 
  * sales tax has been added*/

public class FindCost2
        Public static void main (String[] args)
{
      double price,tax;
      price = 500;
      tax = 17.5;
      price = price * (1 + tax/100);// calculate cost
      // display results
      System.out.println("***Product Price Check");
      System.out.println("Cost after tax = " + price);
    }
}

4 个答案:

答案 0 :(得分:3)

请完全尝试并命名您的java文件FindCost2.java

package findcost2;

public class FindCost2{

public static void main (String[] args)
{
  double price,tax;
  price = 500;
  tax = 17.5;
  price = price * (1 + tax/100);// calculate cost
  // display results
  System.out.println("***Product Price Check");
  System.out.println("Cost after tax = " + price);
}

}

答案 1 :(得分:2)

您在class Main之后错过了一个大括号,并且您在同一个源文件中有两个公共类。删除public class Main并将Public更改为public

您可能还应该使用decimal numbers for dealing with currencies

  

迟早,每个试图用Java计算资金的人都会发现计算机无法添加。

答案 2 :(得分:1)

为什么Public大写?应该是:

public class FindCost2 {
    public static void main(String[] args) { ... }
}

答案 3 :(得分:1)

此代码存在许多问题:

  1. 外部类( Main )没有左括号。插入 {括号。

  2. 内部类( FindCost2 )没有左括号。插入 {括号。

  3. main方法的public修饰符是大写的。从小写 p 开始。

  4. main方法嵌套在内部类中。这是非常糟糕的形式。无论如何要使它工作,内部类需要是静态的。插入 static 关键字。

  5. 如果像这样,它编译:

    public class Main {
    
    /*
     * a program to calculate and display the cost of a product after sales tax
     * has been added
     */
    
    public static class FindCost2 {
        public static void main(String[] args) {
            double price, tax;
            price = 500;
            tax = 17.5;
            price = price * (1 + tax / 100);// calculate cost
            // display results
            System.out.println("***Product Price Check");
            System.out.println("Cost after tax = " + price);
        }
    }
    }
    

    但是,外部类( Main )绝对没有意义。只需删除它。删除外部类时,内部类( FindCost2 )不再是静态的。删除关键字。

    在一行上声明多个变量是非常糟糕的形式(如在double price,tax;中)。将其拆分为两行:

    double price;
    double tax;
    

    有充分的理由不将双重类型用于货币价值。通过一些额外的工作,您可以轻松编写一个简单的Money类。检查javapractices.com以获得对此的良好概述。

    希望有所帮助!