2.编写Circle类,要求如下: (以下的所有类、成员属性、成员方法均为公共权限!) (1)1个属性:半径r,要求封装 (2)1个符号常量:圆周率PI,常量值为 3.1415926; (3)4个方法: getArea()--返回圆面积(访问控制权限:缺省) getPerimeter0-- 返回圆周长(访问控制权限:受保护的) sum(int n) -- 返回前n个自然数的和(访问控制权限:公共的) printInfo(0 -- 输出该圆的基本信息,包括半径值、圆面积值、圆周长值 (4)编写若干测试类测试Circle类中各种不同访问权限属性和方法的调用情况
时间: 2024-03-11 20:48:51 浏览: 101
JavaPD-Ch04mao 类与对象 线下班1
好的,下面是 Circle 类的实现代码:
```java
public class Circle {
private double r; // 半径
public static final double PI = 3.1415926; // 圆周率
// 计算圆面积
double getArea() {
return PI * r * r;
}
// 计算圆周长
protected double getPerimeter() {
return 2 * PI * r;
}
// 计算前 n 个自然数的和
public int sum(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
// 输出基本信息
public void printInfo() {
System.out.println("半径:" + r);
System.out.println("面积:" + getArea());
System.out.println("周长:" + getPerimeter());
}
// 构造函数
public Circle(double r) {
this.r = r;
}
}
```
下面是测试类的实现代码:
```java
public class TestCircle {
public static void main(String[] args) {
Circle c = new Circle(5.0);
// 测试访问权限:缺省
double area = c.getArea();
System.out.println("圆面积:" + area);
// 测试访问权限:受保护的
double perimeter = c.getPerimeter();
System.out.println("圆周长:" + perimeter);
// 测试访问权限:公共的
int sum = c.sum(10);
System.out.println("前10个自然数的和:" + sum);
// 测试输出基本信息
c.printInfo();
}
}
```
运行结果如下:
```
圆面积:78.539815
圆周长:31.415926
前10个自然数的和:55
半径:5.0
面积:78.539815
周长:31.415926
```
可以看到,我们成功地测试了 Circle 类中不同访问权限属性和方法的调用情况,证明了我们的 Circle 类设计和实现正确。
阅读全文