Java中方法重载的测试代码清单.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
在Java编程语言中,方法重载(Method Overloading)是一种重要的多态性表现形式,它允许在一个类中定义多个同名方法,但每个方法的参数列表必须不同,可以通过参数的数量、类型或者顺序来区分。本篇文档通过具体的代码示例展示了如何在Java中实现方法重载,以及如何在不同类之间进行交互。 我们来看`People.java`中的代码。这个类定义了三个名为`calc`的方法,它们都具有相同的名称,但参数类型不同。`calc`方法分别接受两个`int`类型的参数、一个`long`和一个`int`类型的参数,以及两个`double`类型的参数,返回值类型也相应地不同。这样做的目的是为了根据传入的不同数据类型执行不同的操作,如加法、减法和乘法。 ```java public class People { float calc(int a, int b) {return a + b;} float calc(long a, int b) {return a - b;} double calc(double a, int b) {return a * b;} } ``` 接着是`TestOverloadByPeople.java`,这是一个主类,它创建了一个`People`对象`tom`并调用了`calc`方法。由于Java会根据传递的参数类型自动选择对应的方法,所以分别打印出不同的结果。 ```java public class TestOverloadByPeople { public static void main(String[] args) { People tom = new People(); System.out.println(tom.calc(10, 20)); // 调用 calc(int, int) System.out.println(tom.calc(10L, 20)); // 调用 calc(long, int) System.out.println(tom.calc(10f, 20)); // 调用 calc(double, int) } } ``` 然后,我们有`Circle.java`和`TiXing.java`,这两个类分别代表圆和梯形,它们各自有构造函数和计算面积的方法。`Circle`类提供了默认构造函数和一个接受`double`类型半径的构造函数,`TiXing`类则接收三个`double`类型参数表示上底、下底和高。 ```java // Circle.java public class Circle { double r, area; Circle() {} Circle(double r) {this.r = r;} void setRadius(double r) {this.r = r;} double getRadius() {return r;} double getArea() {return 3.14 * r * r;} } // TiXing.java public class TiXing { double above, bottom, height; TiXing(double a, double b, double h) { above = a; bottom = b; height = h; } double getArea() {return (above + bottom) * height / 2;} } ``` `TestOverloadByTixing.java`演示了如何在不同类之间交互。它创建了`Circle`和`TiXing`对象,并通过`Student`类的`calcArea`方法计算它们的面积。这里`calcArea`是方法重载的一个例子,因为我们可以为不同类型的参数提供不同的实现。 ```java public class TestOverloadByTixing { public static void main(String[] args) { Circle c = new Circle(); c.setRadius(196.87); TiXing t = new TiXing(3, 21, 9); Student zhang = new Student(); double res = zhang.calcArea(c); // 假设Student类有针对Circle的calcArea方法 System.out.println("张计算的圆面积:" + res); res = zhang.calcArea(t); // 假设Student类有针对TiXing的calcArea方法 System.out.println("张计算的梯形面积:" + res); } } ``` 通过以上代码,我们可以看出在Java中如何利用方法重载来提高代码的可读性和灵活性。在实际开发中,这种技术广泛应用于创建多功能的工具类或者处理不同类型的输入数据。同时,通过实例化不同类的对象,我们可以根据对象的类型调用适合的方法,进一步增强了程序的多态性。
- 粉丝: 47
- 资源: 7704
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助