-1

私は現在プロジェクトを完了しており、メニューを作成しようとしています。メニュー自体は問題なく動作しますが、メソッド自体が含まれている他の Java ファイルにリンクしようとすると、「メソッドメソッド名が String 型に対して定義されていません」というエラーが表示されます。以下は、他のJavaファイルのメソッドにリンクしようとするために使用しているコードです。

        {
        if (menuChoice.equals("A"))
        {
            System.out.print("Enter the Movie ID: ");
            movieID = sc.nextLine();
            movieID.borrowMovie();
        }
        if (menuChoice.equals("a"))
        {
            System.out.print("Enter the Movie ID: ");
            movieID = sc.nextLine();
            movieID.borrowMovie();
        }
        if (menuChoice.equals("B"))
        {
            System.out.print("Enter the Movie ID: ");
            movieID = sc.nextLine();
            movieID.returnMovie();
        }
        if (menuChoice.equals("b"))
        {
            System.out.print("Enter the Movie ID: ");
            movieID = sc.nextLine();
            movieID.returnMovie();
        }

さらに、以下は、他のJavaファイルでリンクしようとしている2つのメソッドのコードです。2 つの別個のクラス ファイルを持ち、それらを一緒に使用する方法を示すことは、プロジェクトの要件ですが、この部分は私を困惑させました!

// Implement borrowMovie method
public double borrowMovie(String memberID)
{
    if (this.isOnLoan = false)
    {
        this.isOnLoan = true;
    }
    else 
    {
        return Double.NaN;
    }
    }

// Implement returnMovie method
public double returnMovie(int daysBorrowed)
{
    if (this.isOnLoan = false)
    {
        return Double.NaN;
    }
    else
    {
        this.isOnLoan = false;

    }
}

どんな助けでも大歓迎です:)

4

2 に答える 2

4

あなたのコードを見ると、それmovieIDString.

ClassにはメソッドとStringがないため、コンパイラからその旨を伝えるエラーが表示されます。borrowMovie()returnMovie()

movieID.borrowMovie()あなたが望む代わりに: borrowMovie(movieID)

borrowMovie()メソッドとreturnMovie()メソッドの別のバグを次に示します。

if (this.isOnLoan = false)

ここに値を割り当てfalseていthis.isOnLoanます。それはおそらくあなたが望むものではありません。==比較、=割り当てに使用します。さらに良いことに、 a が であるかどうかを確認するにbooleanfalse、次を使用します!

if (!this.isOnLoan)

doubleメソッドが値を返すのはなぜですか?

于 2013-07-23T12:55:43.303 に答える
0

この行は値 false を isOnLoan に割り当てているため、常に true になります。

if (this.isOnLoan = false)

これとは別に、else ブランチには戻り値はありません。たとえば、次のようになります。

public double returnMovie(int daysBorrowed)
{
    if (this.isOnLoan = false)
    {
        return Double.NaN;
    }
    else
    {
        this.isOnLoan = false;
        return this.id;
    }
}
于 2013-07-23T12:54:29.733 に答える