用java随机产生20个圆,并输出圆的属性信息及周长和面积信息,画出内存示意图
时间: 2024-10-09 12:11:11 浏览: 9
在Java中,我们可以创建一个Circle类来表示圆形,包含属性如半径(r)以及计算周长(circumference)和面积(area)的方法。然后利用ArrayList来存储20个Circle对象,通过Random生成随机的半径值。这里我们假设有一个简单的Circle类:
```java
import java.util.ArrayList;
import java.util.Random;
public class Circle {
private double radius;
// 构造函数,getters和setters省略
public double getArea() {
return Math.PI * radius * radius;
}
public double getCircumference() {
return 2 * Math.PI * radius;
}
}
public class Main {
public static void main(String[] args) {
ArrayList<Circle> circles = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < 20; i++) {
double r = random.nextDouble() * 10; // 随机生成0到10之间的半径
Circle circle = new Circle();
circle.setRadius(r);
circles.add(circle);
System.out.println("Circle " + (i+1) + ":");
System.out.println("Radius: " + r);
System.out.println("Area: " + circle.getArea());
System.out.println("Circumference: " + circle.getCircumference());
System.out.println(); // 每个圆之间换行
}
// 内存示意图通常是系统级别的,Java编译器无法直接提供,但你可以想象ArrayList存储了Circle对象的引用,每个对象有自己的radius、area和circumference数据。
}
}
```
关于内存示意图,由于这是文本环境,我们无法直接展示。但在Java中,对于这样的程序,主要的内存分配会包括以下几个部分:
- 对于ArrayList<Circle> circles,它是一个对象引用,占用较小的空间;
- 每个Circle对象,包含了radius字段,以及额外用于方法区的引用指针(指向方法和静态变量);
- 对于每个Circle对象,其radius值会被放在堆内存中。
阅读全文