用Java编写如下程序1. (简答题) 形状家族应用: 结合配置文件shape.properties和多态性定义形状家族,至少包括三种形状。并结合JavaFx实现显示形状外观、计算的面积和周长,以及控制形状在界面的位置的变更。
时间: 2023-12-06 16:41:32 浏览: 111
用Java写的一些程序
这道题需要用到JavaFx来实现图形界面的显示和控制,同时需要使用多态性来定义形状家族,以及读取配置文件来获取形状的属性信息。
首先需要定义一个抽象类Shape,用于表示所有形状的基类,其中包含计算面积和周长的抽象方法:
```
public abstract class Shape {
public abstract double area();
public abstract double perimeter();
}
```
接下来,我们需要定义三种形状类,例如正方形Square、圆形Circle和矩形Rectangle。这些类都继承自Shape基类,并实现其抽象方法,例如:
```
public class Square extends Shape {
private double side;
public Square(double side) {
this.side = side;
}
@Override
public double area() {
return side * side;
}
@Override
public double perimeter() {
return 4 * side;
}
}
```
除此之外,我们还需要读取配置文件来获取形状的属性信息,例如:
```
Properties props = new Properties();
props.load(new FileInputStream("shape.properties"));
// 创建正方形对象
double side = Double.parseDouble(props.getProperty("square.side"));
Square square = new Square(side);
```
最后,我们需要使用JavaFx来实现图形界面的显示和控制,例如:
```
public class ShapeApp extends Application {
private Circle circle;
private Rectangle rectangle;
private Polygon polygon;
@Override
public void start(Stage primaryStage) throws Exception {
// 初始化形状对象
circle = new Circle(50);
rectangle = new Rectangle(100, 50);
polygon = new Polygon(0, 0, 100, 0, 50, 100);
// 创建界面布局
VBox vbox = new VBox(10);
vbox.setAlignment(Pos.CENTER);
vbox.getChildren().addAll(circle, rectangle, polygon);
// 创建场景和舞台
Scene scene = new Scene(vbox, 300, 300);
primaryStage.setScene(scene);
primaryStage.show();
}
}
```
在上述代码中,我们创建了一个VBox布局,并将三个形状添加到其中。然后,我们创建了一个场景和一个舞台,并将VBox布局添加到场景中。最后,我们将场景设置为舞台的场景,并显示舞台。
通过上述代码的实现,我们就可以创建一个形状家族应用,实现显示形状外观、计算的面积和周长,以及控制形状在界面的位置的变更。
阅读全文