-1

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
4

5 に答える 5

1

Java の別のメソッド (またはコンストラクター) 内にメソッドを配置することはできません。メソッドをコンストラクターの外に移動しますが、クラス内に移動します。

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;
    }   

}
于 2012-09-10T05:24:45.283 に答える
1

別のメソッド内でメソッドを定義することはできません。

//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;
} 
于 2012-09-10T05:25:56.240 に答える
0

コンストラクターの外部で「setInitialQuantity」を定義してから、コンストラクターから呼び出す必要があります。このようなもの:

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

public void setInitialQuantity (int initialQuantity)
{
   quantity = initialQuantity;
} 
于 2012-09-10T05:37:20.030 に答える
0

コンストラクター内にメソッドを含めることはできません。次のようなものを探している可能性があります。

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;
    }
}
于 2012-09-10T05:35:59.467 に答える
0

Cosntructor を次のように変更します。

 public Invoice ( int initialQuantity, String partNumber, String partDescript, double unitPrice)
    {      
       quantity = initialQuantity;         
    }//end Invoice constructor
于 2012-09-10T05:26:14.800 に答える