class CCircle { double pi; double radius; double getRadius(){ return radius; } void setCircle(double r, double p){ pi=p; radius=r; } } public class TestCCircle{ public static void main(String args[]) { CCircle cir1=new CCircle(); cir1.setCircle(2.0,3.1416); System.out.println("radius="+cir1.getRadius()); } }扩展圆的定义,为其增加可以求圆面积的方法,并在主类中输出一个实例化的圆的面积。 思考问题: 运行扩展后的程序,思考如下的问题: (1)是否可以将类-圆的定义和主类的源代码放在两个文件中。如果可以的话,两个文件的命名有何要求,上机测试后,给出结论。 (2)修改程序,使圆的属性pi定义为最终变量,其值为3.14159,看会出现什么样的结果。如果程序出错,请调整代码以适合属性pi为最终变量的要求。 (3)为程序添加构造方法代码,调用该构造方法,可以完成圆的半径的初始化。 (4)修改主类代码,测试构造方法的使用。
时间: 2023-06-16 16:06:44 浏览: 89
定义抽象基类CShape,由它派生出3个派生类:CCircle、CRectangle、CTriangle,计算图形的周长和面积
扩展圆的定义,增加可以求圆面积的方法:
```
class CCircle {
final double pi = 3.14159; // 定义pi为final变量
double radius;
double getRadius() {
return radius;
}
double getArea() { // 增加求圆面积的方法
return pi * radius * radius;
}
void setCircle(double r) {
radius = r;
}
CCircle(double r) { // 添加构造方法,在初始化时设置圆的半径
radius = r;
}
}
public class TestCCircle {
public static void main(String args[]) {
CCircle cir1 = new CCircle(2.0); // 实例化一个圆对象
System.out.println("radius=" + cir1.getRadius());
System.out.println("area=" + cir1.getArea()); // 输出圆的面积
}
}
```
问题解答:
(1)可以将类-圆的定义和主类的源代码放在两个文件中。类-圆的文件命名为CCircle.java,主类的文件命名为TestCCircle.java。
(2)修改程序,将pi定义为final变量,其值为3.14159。程序不会出错,因为final变量在定义时必须被赋值,并且赋值后不可再被修改。
(3)添加构造方法代码:
```
CCircle(double r) {
radius = r;
}
```
(4)修改主类代码,测试构造方法的使用:
```
CCircle cir1 = new CCircle(2.0); // 实例化一个圆对象
```
阅读全文