无法获取编译代码:')'预期

时间:2011-04-15 03:20:43

标签: java

我已经为Inventory程序重新编写了我的java代码,但是我仍然无法获得要编译的代码。

import java.text.NumberFormat;
import java.util.Locale;
import java.util.Scanner;

class Television {

    private String itemNumber;
    private String productName;
    private double units;



    //constructor
    public Television (String itemNumber, String productName, double units, double unitprice) {
        setItemNumber(itemNumber);
        setProductName(productName);
        setUnits(units);
        setUnitPrice(unitPrice);

    }

    //accessor methods for class variables
    public String getItemNumber () {
        return itemNumber;
    }

    public void setItemNumber (String itemNumber) {
        this.itemNumber = itemNumber;
    }

    public String getProductName () {
        return productName;
    }

    public void setProductName (String productName) {
        this.productName = productName;
    }

    public double getUnits () {
        return units;
    }

    public void setUnits (double units) {
        this.units = units;
    }

    public double getUnitPrice () {
        return unitPrice;
    }

    public void setUnitPrice (double unitPrice) {
        this.unitPrice = unitPrice;
    }

}
public class InventoryPart1 {

    public static void main (String args[]) {

        NumberFormat nf = NumberFormat. getCurrencyInstance(Locale.US);

        //create an instance of the Television class

        Television samsung = new Television ("SAMSUNG 46", "Class 6400 Series", 9.3,1,599.99);

        //use the methods from class Television to output the inventory details.
        System.out.println("Item Number: " + samsung.getItemNumber());

        System.out.println("Product Name: " + samsung.getProductName());

        System.out.print("Number of Units: " + samsung.getUnits());

        System.out.print("Unit Price: " + nf.format(Samsung.getUnitPrice()));

        System.out.print("Inventory______ Total:_______"+

  nf.format(samsung.calculateInventoryTotal());

我收到以下错误:

  

C:\ Documents and   设置\ ADMINUSER \我的文档\ InventoryPart1.java:81:   ')'预计   nf.formatsamsung.calculateInventoryTotal));   ^ 1错误工具已完成退出   代码1

4 个答案:

答案 0 :(得分:6)

你错过了一个括号!

最后一行应该说:

System.out.print("Inventory______ Total:_______"+ nf.format(samsung.calculateInventoryTotal()));

(在末尾添加了)个字符)

祝你好运!

事实上,这正是错误所说的:')' expected意味着 - 编译器期待一个)字符并且不存在! :)

答案 1 :(得分:1)

正如poundifdef指出的那样(正确地),你(首先)错过了一个括号。在你的回复中,你说你现在得到5个错误而不是1.所以,我更多地回应那个陈述而不是你的额外帖子。

可能有助于你学习Java的一件事(因为我在第一次开始时犯了同样的错误)是编译和运行时错误非常具有描述性。我知道在屏幕上看到大量文字可能令人生畏,但需要花一点时间阅读它并真正解析它所说的内容。我们来看看你当前的错误(括号一)。

  

C:\ Documents and   设置\ ADMINUSER \我的文档\ InventoryPart1.java:81:   ')'预计   nf.formatsamsung.calculateInventoryTotal));   ^ 1错误工具已完成退出   代码1

所以,这基本上是在说:

  • InventoryPart1.java:81 - 这是您的错误发生的行。
  • ')'预期 - 所以,你错过了一个右括号。这表明您可能需要计算该行的括号(或者更有可能在该语句中),并找出未正确关闭括号的位置。
  • nf.formatsamsung.calculateInventoryTotal)); - 编译器向您(大约)显示它认为问题所在的位置。

修复此错误并重新编译后,您可能会收到更多错误(听起来就像您的其他评论一样)。诀窍是在解析错误和理解他们真正说的内容时重复相同的过程。正如在另一个答案中指出的那样,良好的IDE(集成开发环境),例如EclipseNetBeans可以在理解代码和改进代码方面做出奇迹。除此之外,还有一个问题就是停下来并花一些时间思考,“这个错误说的是什么?”和“我的代码在做什么?”和“我到底想做什么?”

我知道这并没有直接回答你的问题(我确实为poundifdef提供了+1)但我希望这对你理解Java有所帮助。

答案 2 :(得分:0)

  • unitprice与电视构造函数调用中的unitPrice不匹配
  • 缺少unitPrice实例变量
  • 电视需要公开宣传
  • 电视构造函数与InventoryPart1中的调用不匹配 - 一个额外的arg(或1个缺失的参数)
  • 三星变量在InventoryPart1中被误传为三星
  • calculateInventoryTotal方法缺少
  • 应该是

    System.out.print(“Inventory_ 总计: __ ” + nf.format(samsung.calculateInventoryTotal()));

如果您使用像Netbeans或Eclipse这样的体面IDE,您可能会立即发现所有这些问题。

我假设InventoryPart1和电视是在单独的文件InventoryPart1.java,Television.java中 - 如果没有,它们应该是。

答案 3 :(得分:0)

执行以下操作来编译代码, 在您的InventoryPart1类中。

  1. 将此调用放入Television类,只需删除一个参数,因为构造函数只有4个参数:Television samsung = new Television ("SAMSUNG 46", "Class 6400 Series", 9.3,599.99);
  2. 如前面的帖子中所示放一个结束')',表示您遗漏了这个:System.out.print("Inventory______ Total:_______"+ nf.format(samsung.calculateInventoryTotal()));
  3. 在此处将三星的拼写更改为三星:System.out.print("Unit Price: " + nf.format(Samsung.getUnitPrice()));
  4. 在你的电视课上改变列出的内容:

    1. 放置一个实例变量private double unitPrice;
    2. 将参数名称unitprice的拼写更改为unitPrice:`public Television(String itemNumber,String productName,double unit,double unitprice){...}
    3. 定义一个方法,因为它会为您计算总数并返回totalAmt。public double calculateInventoryTotal() { //calculate total here; return totalAmt; }