Java 为什么我在方法上有错误?

Java 为什么我在方法上有错误?,java,class,methods,Java,Class,Methods,我不明白为什么在setInitialQuantity方法声明中会出现这些错误,有人介意看一下吗 public class Invoice { private int quantity; private String partNum; private String partDesc; private double unitPrice; //constructor public Invoice ( int initialQuantity, Str

我不明白为什么在setInitialQuantity方法声明中会出现这些错误,有人介意看一下吗

public class Invoice
{
    private int quantity;
    private String partNum;
    private String partDesc;
    private double unitPrice;


    //constructor 
    public Invoice ( int initialQuantity, String partNumber, String partDescript, double unitPrice)
    {
        public void setInitialQuantity ( int initialQuantity )
        {
            quantity = initialQuantity;
        }   
    }//end Invoice constructor
}
错误:

javac Invoice.java
Invoice.java:16: illegal start of expression
    public void setInitialQuantity ( int initialQuantity )
    ^
Invoice.java:16: illegal start of expression
    public void setInitialQuantity ( int initialQuantity )
           ^
Invoice.java:16: ';' expected
    public void setInitialQuantity ( int initialQuantity )
                                  ^
Invoice.java:16: ';' expected
    public void setInitialQuantity ( int initialQuantity )
                                                        ^
4 errors

在Java中,不能在另一个方法(或Concstructor)内部有一个方法,请将其移到构造函数外部,但移到类内部

public class Invoice
{
    private int quantity;
    private String partNum;
    private String partDesc;
    private double unitPrice;


    //constructor 
    public Invoice ( int initialQuantity, String partNumber, String partDescript, double unitPrice)
    {
    }//end Invoice constructor

public void setInitialQuantity ( int initialQuantity )
    {
            quantity = initialQuantity;
    }   

}

不能在另一个方法中定义方法

//constructor     
public Invoice(int initialQuantity,String partNumber,String partDescript,double unitPrice)
{
   this.quantity=initialQuantity;
   this.partNum=partNumber;
   this.partDesc=partDescript;
   this.unitPrice=unitPrice;
}   
public void setInitialQuantity(int initialQuantity)
{
    quantity = initialQuantity;
} 

将共构造函数更改为:

 public Invoice ( int initialQuantity, String partNumber, String partDescript, double unitPrice)
    {      
       quantity = initialQuantity;         
    }//end Invoice constructor

您不能在构造函数中有方法,可能您正在查找以下内容:

public class Invoice
{
    private int quantity;
    private String partNum;
    private String partDesc;
    private double unitPrice;


    //constructor 
    public Invoice ( int initialQuantity, String partNumber, String partDescript, double unitPrice)
    {
        quantity = initialQuantity;
        partNum = partNumber;
        partDesc = partDescript;
        unitPrice = unitPrice;
    }//end Invoice constructor

    public void setInitialQuantity ( int initialQuantity )
    {
        quantity = initialQuantity;
    }
}

您应该在构造函数外部定义“setInitialQuantity”,然后从构造函数调用它。大概是这样的:

//constructor          
public Invoice (int initialQuantity, String partNumber, String partDescript, double unitPrice)
{   
   setInitialQuantity(initialQuantity);     
}//end Invoice constructor

public void setInitialQuantity (int initialQuantity)
{
   quantity = initialQuantity;
}