java - 作业帮助需要使用 MyMath 的 java 接口(interface)

标签 java interface

好吧,我想我已经做到了。但现在我遇到了接口(interface)方法的问题。接口(interface)方法使用泛型类型和 1 个对象。但分配要求添加两个对象。我现在被困在这一点上。我不确定如何编写 add(T o) 接口(interface),因为我只能将一个对象发送到该方法中。我尝试过使用 value1.add(value2) 但当我测试值时似乎只出现了 value1 的值。我不知道 value2 去了哪里这是我的类和接口(interface)

public class MyFraction implements MyMath<MyFraction> {
private List<Character> sign = new ArrayList<Character>();
private List<Integer> numerator = new ArrayList<Integer>();
private List<Integer> denominator = new ArrayList<Integer>();

public MyFraction(int numerator, int denominator, char sign) {
    this.numerator.add(numerator);
    this.denominator.add(denominator);
    this.sign.add(sign);

}
public MyFraction(){}

public static void main(String[] args) {
    MyFraction run = new MyFraction();
    run.start();
}

private void start() {
    char sign = JOptionPane.showInputDialog(null, "Enter - for negative + for positive number ").charAt(0);
    int numerator = Math.abs(Integer.parseInt(JOptionPane.showInputDialog(null, "Enter a numerator ")));
    int denominator = Math.abs(Integer.parseInt(JOptionPane.showInputDialog(null, "Enter a denominator ")));
    MyFraction value1 = new MyFraction(numerator, denominator, sign);

    sign = JOptionPane.showInputDialog(null, "Enter - for negative + for positive number ").charAt(0);
    numerator = Math.abs(Integer.parseInt(JOptionPane.showInputDialog(null, "Enter a numerator ")));
    denominator = Math.abs(Integer.parseInt(JOptionPane.showInputDialog(null, "Enter a denominator ")));
    MyFraction value2 = new MyFraction(numerator, denominator, sign);

    System.out.println("numerator 1: "+value1.getNumerator() );
    System.out.println("denominator 1: "+value1.getDenominator() );
    System.out.println("sign 1: "+value1.getSign() );
    System.out.println();
    System.out.println("numerator 2: "+value2.getNumerator() );
    System.out.println("denominator 2: "+value2.getDenominator() );
    System.out.println("sign 2: "+value2.getSign() );
}


public int getNumerator(){
    int value = this.numerator.get(0);
    return value;
}
public int getDenominator(){
    int value =  this.denominator.get(0);
            return value;
}
public char getSign(){
    char value = this.sign.get(0);
    return value;
}


@Override
public MyFraction add(MyFraction o) {

    return null;
}
@Override
public MyFraction subtract(MyFraction o) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public MyFraction divide(MyFraction o) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public MyFraction multiply(MyFraction o) {
    // TODO Auto-generated method stub
    return null;
}

}

public interface MyMath<T> {
public T add(T o);

public T subtract(T o);

public T divide(T o);

public T multiply(T o);

}

最佳答案

接口(interface)在某种程度上是一种契约,它说“无论谁实现我,都必须包含我声明的所有方法的实现”。 实现接口(interface)的每个都象征性地签署了该契约,因此必须自己实现这些方法。

在您的类中,您缺少整个接口(interface)的实现,这就是您的代码无法编译的原因。你的类应该如下所示:

public class MyFraction implements MyMath<MyFraction> {
....

}
//interface memebers
@Override
public MyFraction subtract(MyFraction o){
   //do subtraction here
   return null;
}

@Override
public MyFraction divide(MyFraction o){
   //do division here
   return null;
}

@Override
public MyFraction multiply(MyFraction o){
   //do multiplication here
   return null;
}

@Override
public MyFraction add(MyFraction o) {
    // do adding here
    return null;
}
}

关于java - 作业帮助需要使用 MyMath 的 java 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22008581/

相关文章:

java - 使用aws sdk for java从AWS服务器获取现有 key 对

java - C++ 中的设置/获取方法

java - 接口(interface)永远不能在java中实例化,但是当接口(interface)使用返回类型时发生了什么

.net - 为什么接口(interface)允许在接口(interface)中声明状态?

java - JComboBox 设置标签和值

java - 如何使用Java找到最大的图像?

c# - 递归检查接口(interface)的实现,c#

c# - 关于实例化抽象类的子类的疑问

delphi - 为什么TForm的_release不调用析构函数?

java - "Import cannot be resolved"与 JSP