利用接口做参数,写个计算器,能完成加减乘除运算

题目的要求:(1)定义一个接口ICompute,含有方法int computer(int n,int m)。(2)设计四个类分别实现此接口, 完成加减乘除运算。(3)设计一个类UseCompute ,类中含有方法public void useCom(Icompute com,int one,int two)此方法能够用传递过来的对象调用computer方法完成运算,并输出运算的结果。

目录

一、接口的定义:接口是一种抽象的数据类型,它只包含方法的声明,不包含方法的实现。因此,在接口中定义的方法都是抽象的,不能有具体的实现。

二、四个实现类(Add、Except、Multiply、Subtract)

三、设计一个UseCompute类 ,类中含有方法:public void useCom(Icompute com,int one,int two)

四、测试类,调用UseCompute中的方法useCom来完成加减乘除运算。

五、结论 


(4)设计-个主类Test ,调用UseCompute中的方法useCom来完成加减乘除运算


一、接口的定义:接口是一种抽象的数据类型,它只包含方法的声明,不包含方法的实现。因此,在接口中定义的方法都是抽象的,不能有具体的实现。

接口的优势:
● 接口可以实现多继承,可以让一个类实现多个接口。
● 接口可以实现代码的解耦,可以将具体实现和接口分离。
● 接口可以实现代码的扩展性,可以在不修改接口的情况下扩展接口的实现。
● 接口可以实现代码的灵活性,可以在运行时动态地实现接口。

1、定义一个接口ICompute,含有方法int computer(int n,int m)

public interface ICompute {
	int couputer(int n,int m)throws Exception;
}

二、四个实现类(Add、Except、Multiply、Subtract)

Add类:这个类Add是一个简单的加法实现,它实现了ICompute接口并重写了其方法。当你需要执行加法运算时,你可以创建一个Add类的实例并调用其方法。

public class Add implements ICompute{
	@Override
	public int couputer(int n,int m) {
		return n+m;
	}
}

Subtract类:这个类Subtract是一个简单的减法实现,它实现了ICompute接口并重写了其方法。当你需要执行减法运算时,你可以创建一个Subtract类的实例并调用其方法。

public class Subtract implements ICompute{
	@Override
	public int couputer(int n,int m) {
		return n-m;
	}
}

Multiply类:这个类Multiply是一个简单的乘法实现,它实现了ICompute接口并重写了其方法。当你需要执行乘法运算时,你可以创建一个Multiply类的实例并调用其方法。

public class Multiply implements ICompute{
	@Override
	public int couputer(int n,int m) {
		// TODO 自动生成的方法存根
		return n*m;
	}
}

Except类:这个类Except是一个简单的除法实现,它实现了ICompute接口并重写了其方法。但有一些命名和类型不一致的问题需要解决。当你需要执行除法运算时,你可以创建一个Except类的实例并调用其方法,但要注意除数不能为0。

public class Except implements ICompute{
	@Override
	public int couputer(int n,int m) throws Exception {
		if (m==0) {
			throw new Exception("m不能为0");
		} else {
			return n/m;
		}
	}
}

三、设计一个UseCompute类 ,类中含有方法:public void useCom(Icompute com,int one,int two)

  • 这是一个公开的静态方法,名为useCom

  • 它接受三个参数:

    • 一个实现了ICompute接口的对象(名为com)。

    • 两个整数(名为onetwo

System.out.println(com.couputer(one, two));

这行代码尝试使用ICompute接口的实例(即com对象)来执行计算

System.out.println(e.getMessage());

  • 如果在尝试执行计算时抛出异常,这行代码将捕获该异常并打印其消息到控制台。

  • e.getMessage()返回异常的消息文本。

这个类UseCompute提供了一个静态方法,允许你使用任何实现了ICompute接口的对象来执行计算,并将结果或异常消息打印到控制台。

public class UseCompute {
	public static void useCom(ICompute com,int one,int two){
		try {
			System.out.println(com.couputer(one, two));
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}
}

四、测试类,调用UseCompute中的方法useCom来完成加减乘除运算。

创建一个Multiply类的实例(对象)并将其引用赋给变量m1

调用UseCompute类的useCom方法,并传递m1对象、整数6和整数7作为参数。这会执行乘法运算6乘以7,并将结果打印到控制台。

创建一个Except类的实例(对象)并将其引用赋给变量e1

调用UseCompute类的useCom方法,并传递e1对象、整数27和整数9作为参数。这会执行除法运算27除以9,并将结果打印到控制台。

创建一个Subtract类的实例(对象)并将其引用赋给变量s1

调用UseCompute类的useCom方法,并传递s1对象、整数32和整数12作为参数。这会执行减法运算32减去12,并将结果打印到控制台。

public class TestCompute {
	public static void main(String[] args) {
		Multiply m1=new Multiply();
		UseCompute.useCom(m1,6,7);
		Except e1=new Except();
		UseCompute.useCom(e1, 27, 9);
		Add a1=new Add();
		UseCompute.useCom(a1, 33, 22);
		Subtract s1=new Subtract();
		UseCompute.useCom(s1, 32, 12);
	}
}

以下是运行出来的结果:

加法的结果是:42

减法的结果是:3

乘法的结果是:55

除法的结果是:20

五、结论 

TestCompute类是一个用于测试的类,它通过调用UseCompute类的useCom方法,使用四个不同的计算类(MultiplyExceptAddSubtract)来执行不同的计算,并将结果打印到控制台。这些计算类都实现了ICompute接口,因此它们可以传递给useCom方法进行计算。这个测试类展示了如何使用这些计算类,并通过调用静态方法进行操作,从而实现了不同的计算功能。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值