-4

プログラムの開始時に、私は持っていclass BusinessAccount extends GasAccountます。GasAccountスーパークラスでありBusinessAccount、サブクラスです。

また、一番下にあるオーバーロード メソッドにも問題があります。これは、スーパークラス メソッドをオーバーライドしてオブジェクトの残高を計算GasAccount し、オブジェクトの割引を新しいユニットのコストに適用して現在の残高に追加することを意図しています。BusinessAccountオブジェクトの。このメソッドはString、トランザクションが成功したか失敗したかを示す値を返します。このメソッドには次のコードがあります

    import java.util.Scanner ; 
class  BusinessAccount extends GasAccount
{ 
       // The objects properties are declared as private 
        private double dblDiscount ;  
        // The objects methods are defined as public 
        public BusinessAccount (int intNewAccRefNo, String strNewName, String 
                             strNewAddress,double dblNewUnits, double dblNewDiscount, int     intAccRefNo, String strName, double dblUnits, String strAddress ) 
            { 
            // The constructor - same name as the class and no return type
            dblDiscount = dblNewDiscount;
            } 

    public void setNewDiscount ( double dblNewDiscount ) 
        { 
            dblDiscount = dblNewDiscount ; 
        } // end of setNewDiscount
    public double getDiscount() 
        { 
            return dblDiscount ; 
        } // end of getDiscount method
    public string recordUnits (  double dblUnitsUsed);

     if ( dblDiscount = 0.00){
        dblBalance = (dblUnitCost * dblUnitsUsed)  + dblBalance;
            return "Successful";
            }
    else {
        dblBalance = ((dblUnitCost * dblUnitUSed) \ 100 * dblDiscount) + dblBalance;
            return "Unseccfessful";
    } // end of Override method      
} // end of class 

どんな助けでも素晴らしいでしょう!

4

2 に答える 2

3

public double recordUnits ( double dblUnitsUsed)

このメソッドは double を返すように定義されていますが、return ステートメントは文字列です。文字列を返したい場合は、次を使用する必要があります。

public String recordUnits (double dblUnitsUsed){}

于 2013-04-21T17:24:15.410 に答える
1

投稿したコードは無効です: メソッド宣言では、閉じ括弧と開き括弧の間にセミコロンを含めてはなりません:

public double recordUnits(double dblUnitsUsed) // no semicolon here
{

if ステートメントと else ステートメントについても同様です。複数の命令が含まれる場合は、それらを中かっこで囲む必要があります。

if (dblDiscount = 0.00) {
    dblBalance = (dblUnitCost * dblUnitsUsed)  + dblBalance;
    return "Successful";
}
else {
    dblBalance = ((dblUnitCost * dblUnitUSed) \ 100 * dblDiscount) + dblBalance;
    return "Unsuccfessful";
}

また、コードを読みやすくするために、上記のようにコードをインデントすることも学びます。

もちろん、コメントに示されているように、double を返すメソッドは String を返すことはできません。

常にコンパイラのエラー メッセージを読み、理解するようにしてください。それらを理解していない場合は、質問に投稿してください。エラー メッセージは読むことを目的としており、意味のある情報が含まれています。

于 2013-04-21T17:20:04.707 に答える