1

私はJavaの宿題に取り組んでいます。ここに私の指示があります:

インターフェイスプログラミングの割り当て

ISum という名前のインターフェイスを作成します。インターフェイスは 2 つのメソッドを定義する必要があります。最初のメソッドは、引数として 2 つの整数を取り、それらの合計を返す必要があります。2 番目のメソッドは、引数として 2 つの文字列を取り、それらの連結を返す必要があります。2 番目のメソッドは、最初のメソッドのオーバーロード バージョンである必要があります。

IAverage という名前の別のインターフェイスを定義します。インターフェイスは、2 つの整数引数を取り、平均を返す 1 つのメソッドを定義する必要があります。

上で定義した両方のインターフェースを実装する 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をメソッドローカル変数として宣言しています。その後、intint1を実行する必要はありません。またはintint2;。これらの行を含めることにより、何も上書きしません。上記の方法では、次のものが必要です。

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 に答える