在Java中添加,减去,乘以和除以分数

时间:2015-11-07 18:08:02

标签: java jcreator

我正在尝试在Java中添加,乘以和除以分数。我得到的输出是:FRACTIONS @ 3d4eac69。有什么想法吗?

public class FRACTIONS {
private int numer, denom;
    public FRACTIONS (){
    numer=1;
    denom=1;
}
public FRACTIONS (int n, int d){
    numer=n;
    denom=d;
}
public int getNumerator(){
    return numer;
}
public int getDenominator (){
    return denom;
}
public FRACTIONS add(FRACTIONS other){
    int n = numer * other.denom + other.numer * denom;
    int d = denom * other.denom;
    return new FRACTIONS (n, d);
}

public FRACTIONS sub(FRACTIONS other){
int n = numer * other.denom + other.numer * denom;
int d = denom * other.denom;
return new FRACTIONS (n, d);
}

public FRACTIONS mult(FRACTIONS other){
int n = numer * other.numer;
int d = denom * other.denom;
return new FRACTIONS (n, d);
}

public FRACTIONS div(FRACTIONS other){
int n = numer * other.denom;
int d = denom * other.numer;
return new FRACTIONS (n, d);
}

public String toString(){
String str;
str= n + " / " + d;
return str;
}

}

测试人员计划:

import java.util.Scanner;
public class FRACTIONS_TESTER {

public FRACTIONS_TESTER() {
}

public static void main(String[] args) {
    Scanner reader = new Scanner (System.in);
    Scanner scan = new Scanner (System.in);
    FRACTIONS numer, denom;
    numer= new FRACTIONS();
    denom = new FRACTIONS ();
    System.out.print ("Enter the numerator for fraction 1: ");
    int n1 = reader.nextInt();
    System.out.print ("Enter the denominator for fraction 1: ");
    int d1 = reader.nextInt();
    System.out.print ("Enter the numerator for fraction 2: ");
    int n2 = reader.nextInt();
    System.out.print ("Enter the denominator for fraction 2: ");
    int d2 = reader.nextInt();
int n = 5;
int d = 6;
    FRACTIONS f1=new FRACTIONS (n1, d1);
    FRACTIONS f2=new FRACTIONS (n2, d2);
    FRACTIONS f3=new FRACTIONS (n,d);


    int opt;
    System.out.println ("Select the corresponding number for the desired 
 operation: ");
    System.out.println (" 1.  Addition \n 2.  Subtraction \n 3. 
 Multiply \n 4.  Divison");
    opt=scan.nextInt();
    if (opt==1){
        f3=f1.add (f2);

    }
    if (opt==2){
        f3=f1.sub (f2);

    }
    if (opt==3) {
        f3=f1.mult (f2);

    }
    if (opt==4){
        f3=f1.div (f2);

    }
    }
 System.out.println (f3);
}

提前致谢。我只希望输出是一个字符串,以“/”

的形式返回

1 个答案:

答案 0 :(得分:0)

ndtoString的范围内未定义。也许你的意思是

@Override
public String toString() {
    return numer + " / " + denom;
}