我正在尝试通过使用数据抽象和封装实现一个用于进行基本计算的小型程序。
但是每种情况的输出都为零。
谁能找到我在实施准则时错在哪里的错误。
import java.util.Scanner;
interface Sum
{
int sum();
}
interface Sub extends Sum
{
int sub();
}
interface Mul extends Sub
{
int mul();
}
interface Div extends Mul
{
int div();
}
class Algebra implements Sum,Mul,Sub,Div
{
private int number1,number2;
Algebra()
{
number1=0;
number2=0;
}
Algebra(int number1,int number2)
{
this.number1=number1;
this.number2=number2;
}
public int sum()
{
return number1+number2;
}
public int mul()
{
return number1*number2;
}
public int div()
{
return number1/number2;
}
public int sub()
{
return number1-number2;
}
}
class Test
{
public static void main(String [] args)
{
int number1,number2;
char choice;
Scanner input=new Scanner(System.in);
Algebra A=new Algebra();
Div d;
d=(Algebra)A;
System.out.println("Enter the number 1 : ");
number1=input.nextInt();
System.out.println("Enter the numbre 2 : ");
number2=input.nextInt();
System.out.println("Enter choice : 1.)Sum 2.)Mul 3.)Div 4.)Sub ");
choice=input.next().charAt(0);
d=new Algebra(number1,number2);
switch(choice)
{
case '1':
System.out.println("Sum is : "+d.sum());
break;
case '2':
System.out.println("Mul is : "+d.mul());
break;
case '3':
System.out.println("Div is : "+d.div());
break;
case '4':
System.out.println("Sub us : "+d.sub());
break;
}
}
}
在每种情况下,输出均为零。
最佳答案
要解决您的问题,您可能需要更换
new Algebra(number1,number2);
与
d = new Algebra(number1,number2);
在代码中,对象d是默认对象1,其number1和number2设置为零。
您可能还需要格式化代码并考虑您的接口层次结构,这似乎并没有太大用处