在做代码HS的课程时,错误的说 "Bad operator types for binary operator",对于有公共void的行,错误的说 "Bad operator types for binary operator"。不知道我做错了什么

问题描述 投票:0回答:1

运动指导

在这个练习中,你必须使用前面的Fraction类,并通过添加一些方便的方法来扩展它。

public void add(Fraction other)
public void subtract(Fraction other)
public void multiply(Fraction other)
public int getNumerator();
public int getDenominator();
public void setNumerator(int x);
public void setDenominator(int x);
public String toString();

使用FractionTester文件进行测试。

注意

public void add(Fraction other)
public void subtract(Fraction other)
public void multiply(Fraction other)

是void方法。它们不返回任何东西。这些方法不应该创建一个新的Fraction并返回它。

相反,这些方法应该修改实例变量,使其与Fraction other相加、相减或相乘。

例如,下面的代码。

Fraction first = new Fraction(1, 2);
Fraction second = new Fraction(1, 3);
System.out.println();

System.out.println("BEFORE:");
System.out.println("first: " + first);
System.out.println("second: " + second);

first.multiply(second);

System.out.println("AFTER:");

System.out.println("first: " + first);
System.out.println("second: " + second);

应该打印出来:

BEFORE: first: 1 2second: 1 3

AFTER:first:1 6second:1 3分数first因被分数second相乘而被修改,first受影响,second不受影响。12变成了16,因为它被13相乘。

这是我的代码。

public class Fraction
{
    // Create your instance variables and constructor here

    //Instance variables
    private int num;
    private int den;

    //Constructor
    public Fraction(int nume, int dene)
    {
        num = nume;
        den = dene;
    }


    public void add(Fraction other) 
    {
        Fraction a = num/den + other;
    }

    public void subtract(Fraction other) 
    {
        Fraction b = num/den - other;
    }

    public void multiply(Fraction other) 
    {
        Fraction c = num/den * other;
    }

    public String toString() 
    {
        return "";
    }
}
java
1个回答
2
投票

你不能把一个分数乘以 int 直接由一个 Fraction 对象。 你需要 dereference 参数,然后更新 dennum 的组成部分 calling instance.

这个


public void multiply(Fraction other)  {
        Fraction c = num/den * other;
 }

需要用这个来代替。

public void multiply(Fraction other)  {
        num = num * other.num;
        den = den * other.den;
 }

加减法时,需要找共同的分母。

© www.soinside.com 2019 - 2024. All rights reserved.