2017-02-01 9 views
0

こんにちは、私はメインクラスを持っていますが、私のテストクラスから自分のコードを出力する方法を考え出すのに問題があります。私はそれが私の主な方法で行う必要がありますが、私のテストクラスに取得することはできませんので、2つの分数の単純な加算と減算を出力する方法を多くの方法を試しても理解していない。ここテストクラスで使用するメインメソッド

は、すべての機能を持つクラスのために私のコードです:

package rational; 

public class Rational { 

private int numer, denom; 

//constructors 
    public Rational(){ 
     int num = 1; 
     int den = 2; 
     reduce(); 
    } 
    public Rational(int num, int den){ 
    numer = num; 
    denom = den; 
    reduce(); 
    } 
    public Rational(Rational x){ 
    numer = x.numer; 
    denom = x.denom; 
    reduce(); 
    } 

    //setters 
    public void setNumer(int num){ 
    numer = num; 
    reduce(); 
    } 
    public void setDenom(int den){ 
    denom = den; 
    reduce(); 
    } 
    public void setRational(int num, int den){ 
    numer = num; 
    denom = den; 
    reduce(); 
    } 

    //getters 
    public int getNumer(){ 
    return numer; 
    } 
    public int getDenom(){ 
    return denom; 
    } 

    //Copy method 
    public void copyFrom(Rational x){ 
    numer = x.numer; 
    denom = x.denom; 
    reduce(); 
    } 

    //Equals method   
    public boolean equals(Rational x){ 
    if (numer/denom == x.numer/x.denom){ 
    return(true); 
      } 
    else { 
    return(false); 
     } 
    } 

    //Compare to method 
    public int compareTo(Rational x){ 
    if (numer/denom == x.numer/x.denom){ 
    return (0); 
    } 
    else if (numer/denom < x.numer/x.denom){ 
    return (-1); 
    } 
    else{ 
    return (1); 
     }  
    } 

    //Find greatest common divisor 
    static int gcd(int x, int y){ 
    int r; 
    while (y != 0) { 
    r = x % y; 
    x = y; 
    y = r; 
     } 
    return x; 
    } 

    //Rational Addition    
    public void plus(Rational x){ 
    int greatdenom = x.denom * denom;  
    int multx = greatdenom/x.denom; 
    int mult = greatdenom/denom; 
    denom = x.denom * denom; 
    numer = (x.numer * multx) + (numer * mult); 
    reduce(); 
    } 

    //Rational Subtraction 
    public void minus(Rational x){ 
    int greatdenom = x.denom * denom;  
    int multx = greatdenom/x.denom; 
    int mult = greatdenom/denom; 
    denom = x.denom * denom; 
    if (x.numer > numer){ 
    numer = (x.numer * multx) - (numer * mult); 
     } 
    else { 
    numer = (numer * mult) - (x.numer * multx); 
     } 
    reduce(); 
    } 

    //Multiplication  
    public void times(Rational x){ 
    numer = numer * x.numer; 
    denom = denom * x.denom; 
    reduce(); 
    } 

    //Division   
    public void divBy(Rational x){ 
    numer = numer/x.numer; 
    denom = denom/x.denom; 
    reduce(); 
    } 

    //Fraction simplifier   
    private void reduce(){ 
    int divisor; 
    divisor = Rational.gcd(numer, denom); 
    numer = numer/divisor; 
    denom = denom/divisor; 
    } 

@Override 
    public String toString(){ 
    if (denom == 1){ 
    return numer + ""; 
    } 
    else{ 
    return numer + "/" + denom; 
    }  
} 
    } 
+0

ので、主な方法があるでしょうか?私はそれを見ることができません。 – msagala25

+0

あなたのテストクラスはどこですか? –

+0

@justAJAVAGUY 'test'クラスと' main'メソッドはどこですか? –

答えて

1

あなたのプラス方式で合理的な(というよりも、ボイド)を返す必要があります。

public Rational plus(Rational x){ 
    //do addition stuff. 
    return new Rational(//what numerator be//,//what denom should be//) 
    } 

提案として、これらの演算子メソッドをすべて静的にし、2つのパラメータも取り入れます。そして、2つの有理数の分子と分母のそれぞれに「ゲッター」を使用します。このよう

public static Rational plus(Rational r1, Rational r2) { 
    int r1Num=r1.getNum(); 
    int r1Denom=r1.getDenom(); 
    int r2Num=r2.getNum(); 
    int r2Denom=r2.getDenom(); 
    //do all your plus stuff 
    return new Rational(//new num, //new denom); 
} 
+0

どのように2つのパラメータを取り、どちらの方法でそれを行うのですか? – JustAJAVAGUY

+0

プラスメソッドで行います。上記のようになります。 RationalクラスにこれらのgeNum()メソッドとgetDenomメソッドを作成する必要があります。すべての数学関数を別のクラスに入れるためにコードをよりクリーンにするでしょう。 –

+0

これは私を助けてくれてありがとう:) – JustAJAVAGUY

0

は、テストクラスとしてコードを次してみてください。

サンプルコードのテストクラス

public class TestRational 
{ 
    public static void main(String[] args) 
    { 
    Rational rational= new Rational(2,3); 
    rational.plus(rational); 
    System.out.print(rational.toString()); 
    } 
} 

出力は

4/3 
+0

助けてくれてありがとう:) – JustAJAVAGUY

関連する問題