题目:体积计算功能 基本要求:1:使用到类定义、引用型数据参数传递、方法重载、访问权限等知识,包括至少两种形状的体积,至少三个类源文件。2:程序输出包括学号和姓名 用Java语言设计
时间: 2024-10-13 21:14:06 浏览: 32
在Java中,我们可以创建一个名为`Shape`的抽象基类,然后派生出两个具体的形状类,如`Cube`和`Sphere`,来实现题目中所描述的需求。这里是一个简单的例子:
首先,创建一个`Shape`类作为基类,包含一个`calculateVolume()`方法,表示体积计算功能,并声明为抽象的:
```java
// Shape.java
public abstract class Shape {
private String name;
public Shape(String name) {
this.name = name;
}
public String getName() {
return name;
}
// 抽象方法,每个形状类需要覆盖这个方法
public abstract double calculateVolume();
// 输出信息
public void displayInfo() {
System.out.println("Name: " + name);
}
}
```
接着,为立方体和球体创建两个子类,分别实现`calculateVolume()`方法:
```java
// Cube.java
public class Cube extends Shape {
private double side;
public Cube(String name, double side) {
super(name);
this.side = side;
}
@Override
public double calculateVolume() {
return side * side * side;
}
}
// Sphere.java
public class Sphere extends Shape {
private double radius;
public Sphere(String name, double radius) {
super(name);
this.radius = radius;
}
@Override
public double calculateVolume() {
return (4.0 / 3.0) * Math.PI * Math.pow(radius, 3);
}
}
```
最后,在主函数中展示学号、姓名以及各自的体积:
```java
// Main.java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入学生的学号:");
int studentId = scanner.nextInt();
System.out.println("请输入学生姓名:");
String studentName = scanner.next();
// 创建并显示立方体的体积
Shape cube = new Cube(studentName + "_Cube", scanner.nextDouble());
cube.displayInfo();
System.out.println("Cube volume: " + cube.calculateVolume());
// 创建并显示球体的体积
Shape sphere = new Sphere(studentName + "_Sphere", scanner.nextDouble());
sphere.displayInfo();
System.out.println("Sphere volume: " + sphere.calculateVolume());
scanner.close();
}
}
```
这将满足基本要求,有三个类(`Shape`, `Cube`, `Sphere`),通过引用传递参数(`String` 和 `double`),使用了方法重载(`displayInfo()`),并且通过子类实现了`calculateVolume()`方法。用户输入的学号和姓名会在输出信息中体现。
阅读全文