1

我一直在做Java作业。这是我的指示:

接口编程作业

创建一个名为 ISum 的接口。该接口应定义 2 个方法。第一种方法应该将两个整数作为参数并返回它们的总和。第二种方法应该将 2 个字符串作为参数并返回它们的连接。第二种方法应该是第一种方法的重载版本。

定义另一个名为 IVerage 的接口。该接口应定义一种方法,该方法采用 2 个整数参数并返回平均值。

创建一个名为 Calculator 的类,它实现了上面定义的两个接口。你的类必须实现异常处理。创建一个驱动程序类,允许用户调用类中的每个方法。

到目前为止我的工作:

Main班级:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Calculator calculatorObject = new Calculator();
        Scanner scannerObject = new Scanner(System.in);

        System.out.println("Enter 1 for integer or 2 for string");
        int test1 = scannerObject.nextInt();

        switch (test1){
            case 1: 
                System.out.println("Enter 1st number");
                int int1 = scannerObject.nextInt();

                System.out.println("Enter 2nd number");
                int int2 = scannerObject.nextInt();   

                System.out.println("Enter 1 for sum or 2 for average");
                int test2 = scannerObject.nextInt(); 

                switch (test2){
                    case 1: 
                        int sum = calculatorObject.intSum(int1,int2);
                        System.out.println("The sum is " + sum);
                        break;

                    case 2:
                        int avg = calculatorObject.intAvg(int1,int2);
                        System.out.println("The avg is " + avg);
                        break;

                    default:
                        System.out.println("You entered an invalid option");    
                        break;    
                }

                break; 

            case 2: 
                System.out.println("Enter 1st string");
                String string1 = scannerObject.nextLine();

                System.out.println("Enter 2nd number");
                String string2 = scannerObject.nextLine();   

                String stringConcat = calculatorObject.stringSum(string1,string2);
                System.out.println("The sum is " + stringConcat);
                break; 

            default:
                System.out.println("You entered an invalid option");    
                break;
        }
    }
} 

ISum界面:

public interface ISum {

    public void intSum();
    public void intAvg();

}

IAverage界面:

public interface IAverage {

    public void intAvg();

}

Calculate班级:

abstract class Calculator implements IAverage, ISum { 

    public int intSum (int1,int2){
        int int1;
        int int2;
        int sum = int1 + int2;
        return sum;
    }
    
    public String stringSum (string1,string2){
        String string1;
        String string2;
        String stringConcat = string1.concat(string2);
        return stringConcat;
    }

    public int intAvg(int1,int2){
        int int1;
        int int2;
        int avg = (int1 + int2)/2;
        return avg;
    }
    
}
4

3 回答 3

2

乍一看,您的方法似乎看不到参数,因为其中的方法ISum 没有参数。

试试这个,你应该在路上:

public interface ISum {

    public int intSum(int first, int second);
    public int intAvg(String first, String second);

}
于 2012-10-22T02:04:13.223 回答
1

您的说明声明创建了 2 个重载的方法。

public interface ISum {

 public void sum(int a,int b);
 <br>public void sum(String s1,String s2);

}

方法名称必须相同。
返回类型可以更改为 int 和 String。

于 2012-10-22T02:05:50.760 回答
0

您在使用它们之前重新声明并重新初始化参数变量,因此在您触摸它们时它们是空白的。

例如:

public int intSum (int1,int2){

    int int1;
    int int2;

    int sum = int1 + int2;

    return sum;


}

在第一行中,public int intSum (int1,int2){,即您将 int1 和 int2 声明为方法局部变量。你不需要再做 int int1; 或int int2;。通过包含这些行,您将一无所有地覆盖它们。对于上述方法,您只需要:

public int intSum (int1,int2){

    int sum = int1 + int2;

    return sum;


}

编辑:derp,阅读失败。你还应该给参数一个类型,所以

public int intSum (int int1, int int2){

    int sum = int1 + int2;

    return sum;


}
于 2012-10-22T02:04:39.947 回答