0

それぞれ分子と分母を持つ2つの分数を取り、それらを追加して別の分数を出力するように設計されたクラスを作成しました。

プログラムをコンパイルすると、次の問題が発生します。

分数F3=new Fraction.add(F1、F2); 主な方法で

エラー:タイプFraction$addが見つかりませんでした

すべてを1つのクラスにすると、プログラムは実行されますが、すべてのメソッドを厳密にFractionクラスに入れ、UseFractionクラスで分数を呼び出す必要があります。

import java.io.*;
import java.util.*;
import java.text.*;


public final class Fraction
{
    private int numerator, denominator;

    public Fraction (int numerator, int denominator) throws IllegalArgumentException
    {
        this.numerator = numerator;

        if (denominator == 0)
        {
            throw new IllegalArgumentException ();
        }
        this.denominator = denominator;
    }


    //As an instance method
    public void add (Fraction F)
    {
        this.numerator = this.numerator * F.denominator + this.denominator * F.numerator;
        this.denominator = this.numerator * this.denominator;
    }


    //As a static method
    public static Fraction add (Fraction F1, Fraction F2)
    {
        return new Fraction (F1.numerator * F2.denominator + F1.denominator * F2.numerator, F1.numerator);
    }


    //@ Override
    public String toString ()
    {
        return (this.numerator + "/" + this.denominator);
    }

}



public class UseFraction 
{

    public static void main (String str[]) throws IOException
    {
        BufferedReader stdin = new BufferedReader (new InputStreamReader (System.in));

        Fraction F1 = new Fraction (5, 7); // first fraction constructor
        Fraction F2 = new Fraction (3, 8); // second fraction constructor
        Fraction F3 = new Fraction.add (F1, F2); // addition

        System.out.println ("The sum is " + F3); 

    }
}
4

3 に答える 3

3

Fraction.add(F1, F2)ではなく、を使用してくださいnew Fraction.add

于 2013-02-01T17:41:42.463 に答える
1
Fraction F3 = new Fraction.add (F1, F2); // addition

これはただである必要があります:

Fraction F3 = Fraction.add (F1, F2); // addition

于 2013-02-01T17:44:50.440 に答える
0
Fraction F3 = new Fraction.add (F1, F2);

次のように変更します。

Fraction F3 = Fraction.add (F1, F2);
于 2013-02-01T17:42:40.453 に答える