Java方法重载实现输入数据判断形状计算面积
在Java编程中,方法重载是指在同一个类中可以有多个方法具有相同的名称,但是参数列表不同的情况下。通过方法重载,我们可以根据传入的参数的不同来执行不同的操作。在本文中,我们将使用方法重载来实现根据输入的数据判断形状并计算面积的功能。
实现步骤
步骤1:创建ShapeCalculator类
首先,我们需要创建一个名为ShapeCalculator的类,用于存放用来计算各种形状面积的方法。
public class ShapeCalculator {
public double calculateArea(double radius) {
return Math.PI * radius * radius;
}
public double calculateArea(double length, double width) {
return length * width;
}
public double calculateArea(double side1, double side2, double side3) {
double p = (side1 + side2 + side3) / 2;
return Math.sqrt(p * (p - side1) * (p - side2) * (p - side3));
}
}
在上面的代码中,我们创建了三个calculateArea方法,分别用于计算圆的面积、矩形的面积和三角形的面积。这三个方法的参数列表不同,分别接收不同数量的参数。
步骤2:创建ShapeMain类
接下来,我们创建一个名为ShapeMain的类,用于测试ShapeCalculator类中的方法。
import java.util.Scanner;
public class ShapeMain {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ShapeCalculator calculator = new ShapeCalculator();
System.out.println("请输入需要计算的形状(1.圆 2.矩形 3.三角形):");
int shape = scanner.nextInt();
double area = 0.0;
switch (shape) {
case 1:
System.out.println("请输入圆的半径:");
double radius = scanner.nextDouble();
area = calculator.calculateArea(radius);
System.out.println("圆的面积为:" + area);
break;
case 2:
System.out.println("请输入矩形的长度和宽度:");
double length = scanner.nextDouble();
double width = scanner.nextDouble();
area = calculator.calculateArea(length, width);
System.out.println("矩形的面积为:" + area);
break;
case 3:
System.out.println("请输入三角形的三条边长:");
double side1 = scanner.nextDouble();
double side2 = scanner.nextDouble();
double side3 = scanner.nextDouble();
area = calculator.calculateArea(side1, side2, side3);
System.out.println("三角形的面积为:" + area);
break;
default:
System.out.println("输入有误!请重新输入。");
break;
}
}
}
在ShapeMain类中,我们首先通过用户输入选择需要计算的形状(圆、矩形或三角形),然后根据用户的选择输入相应的参数,并调用ShapeCalculator类中的方法来计算面积。最后输出计算结果。