我一直在做Java作业。以下是我的指示:
接口编程分配
创建一个名为ISum的接口。接口应该定义2个方法。第一种方法应该将两个整数作为参数并返回它们的总和。第二种方法应该使用2个字符串作为参数并返回它们的串联。第二种方法应该是第一种方法的重载版本。
定义另一个名为IAverage的接口。接口应该定义一个方法,它接受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;
}
}
答案 0 :(得分:2)
乍一看,您的方法似乎看不到参数,因为ISum
中的方法没有参数。
试试这个,你应该在路上:
public interface ISum {
public int intSum(int first, int second);
public int intAvg(String first, String second);
}
答案 1 :(得分:1)
您的说明指出了创建2个重载方法。
public interface ISum {
public void sum(int a,int b);
public void sum(String s1,String s2);
}
方法名称必须相同。
返回类型可以更改为int和String。
答案 2 :(得分: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;
}