当前位置: 首页 > 知识库问答 >
问题:

Java ADT调用变量

湛钊
2023-03-14

我是Java新手,我正在尝试创建一个ADT。我的ADT涉及通过输入分子和分母来创建和处理分数。我希望我的方法之一是将两个分数相加,并根据两个和的gcd返回一个简化的分数。我遇到的问题是实例化两个分数的组成部分(分子和分母)。该方法应该取一个分数其他,表示为public Rational add(理性其他)。我分配的第一个变量是

int d1 = this.denominator;
int d2 = other.denominator;

但这似乎不起作用。以下是迄今为止的方法:

public Rational add(Rational other){
  int d1 = this.denominator;
  int d2 = other.denominator;
  int dtotal = d1*d2;
  int n1 = this.numerator*d2;
  int n2 = other.numerator*d1;
  int ntotal = n1+n2;
  if(ntotal>dtotal){
    for(int i=1; i<=ntotal; i++){
      if(ntotal%i==0 && dtotal%i==0){
        gcd=i;
      }
    }
  }else if(dtotal>ntotal){
    for(int i=1;i<=dtotal;i++){
      if(dtotal%i==0 && ntotal%i==0){
        gcd=i;
      }
    }
  }else if(dtotal==ntotal){
    gcd=numerator;
  }
  numerator = ntotal/gcd;
  denominator = dtotal/gcd;
}

共有1个答案

冯枫
2023-03-14

您需要使用所需的方法在类之外定义接口。这是样品,请根据您的需要进行编辑。

interface Rational {    
  public int getNumerator();
  public int getDenominator();
  public Rational add(Rational other);
  public Rational multiply(Rational other);
  public int compareTo(Rational other);
}

现在,类的定义如下:

public class RationalC implements Rational {

  int gcd;
  int numerator;
  int denominator;


  @Override
  public int getNumerator() {
    return numerator;
  }

  @Override
  public int getDenominator() {
    return denominator;
  }

  @Override
  public Rational add(Rational other) {
    return null;
  }

  @Override
  public Rational multiply(Rational other) {
    return null;
  }

  @Override
  public int compareTo(Rational other) {
    return 0;
  }
}

添加您的add方法定义。使用getNumerator()getDenominator()访问值而不是直接访问它们。

 类似资料:
  • 我有一个内联变量函数内联int foo(…) 我需要调用一个宏(我们称它为宏),它也是可变的 基本上,我需要将其所有输入参数传递给宏。由于使用了选项,将重新定义为另一个宏将是一个简单的解决方案,但我还需要来返回值<注意:我正在尝试连接已编写代码的两部分,不允许更改它们<代码>foo(…) 用于代码的第一部分,宏定义于第二部分。我要做的唯一一件事就是定义一个使用宏的foo(),我不能,因为它们都是可

  • 除了Trace调试之外,系统还提供了\think\Debug类用于各种调试。 输出某个变量是开发过程中经常会用到的调试方法,除了使用php内置的var_dump和print_r之外,ThinkPHP框架内置了一个对浏览器友好的dump方法,用于输出变量的信息到浏览器查看。 用法: dump($var, $echo=true, $label=null) 相关参数的使用如下: 参数 描述 var(必须

  • 问题内容: 为什么最终控制台日志未定义?变量时间具有全局作用域,而ajax调用是异步的。 这是我的代码: 问题答案: 更改为布尔值false。 http://api.jquery.com/jQuery.ajax/ 另外,请注意,如果您需要在此处使用跨域,则将无法同步-请使用Promise。 使用Q.js在此处查看这样的示例: 演示

  • 我正在做一个新的项目,我试图建立一个货币系统,在那里我可以提取它,以转移到另一个变量(在另一个类)。我在解决这个问题上遇到了一些问题,我对如何编写代码感到非常失望。下面是我想链接的类(我想让“coinsamount”在我做/存款时进入类2“amount” 第2类:

  • This enables the debugging console. The console is a javascript window that informs you of the included templates and assigned variables for the current template page. 它能启动调试控制台。该控制台是一个javascript窗口,该窗

  • 问题内容: 我有一个lua脚本,需要在可变数量的键上调用zunionstore。我正在尝试执行以下代码: 重要的几行是: 生成键列表和实际调用: 但是,执行时出现以下错误: 那么,如何将在lua脚本中计算出的可变数量的键传递给redis.call(“ zunionstore” …)命令? 提前致谢! 问题答案: 我解决这个问题的方法是: