用java编写工具类Tools,要求(1)getArea(double n):返回半径为n的圆面积。(2)getArea(double n1,double n2):返回长宽分别为n1,n2的矩形面积(3)getPerimeter(double n)返回半径为n的圆周长get(double n1,double n2)返回长宽分别为n1,n2的矩形周长。
时间: 2024-01-01 18:05:06 浏览: 66
好的,以下是Java代码实现:
```java
public class Tools {
// 计算圆的面积
public static double getArea(double r) {
return Math.PI * r * r;
}
// 计算矩形的面积
public static double getArea(double l, double w) {
return l * w;
}
// 计算圆的周长
public static double getPerimeter(double r) {
return 2 * Math.PI * r;
}
// 计算矩形的周长
public static double getPerimeter(double l, double w) {
return 2 * (l + w);
}
}
```
可以看到,我们定义了四个方法,分别实现了计算圆的面积、矩形的面积、圆的周长、矩形的周长的功能。其中,圆的面积和周长的计算使用了Math类提供的常量和方法,具体实现可以参考代码。可以通过调用这些方法,来计算不同形状的面积和周长。
相关问题
用java编写超类 Circle派生了一个称为 Cylinder 的子类,如下方类图所示。研究子类 Cylinder 如何调用超类 Circle 的构造函数,并从超类继承和使用方法 getArea()。 Circle 属性 radius:圆半径。 color:圆颜色。 构造方法 Circle():初始化属性。 public Circle(double radius)。 public Circle(double radius,String color)。 方法 两个属性的set和get方法。 getArea():返回圆的面积。 toString(): 返回Circle[radius=xxx,color=xxx]。 Cylinder 属性 height:圆柱的高。 构造方法 Cylinder():初始化属性。 Cylinder(double height)。 Cylinder(double radius,double height)。 Cylinder(double radius, double height,String color)。 方法 属性height的set和get方法。 getVolume():返回圆柱体的体积(圆柱体体积计算公式为底面积x高)。 题目要求 根据题目描述和类图,完成圆和圆柱类。 注:在main方法当中测试类中的属性、方法、构造器。
以下是代码实现及解析:
Circle.java:
```
public class Circle {
private double radius;
private String color;
public Circle() { // 无参构造方法
this.radius = 1.0;
this.color = "red";
}
public Circle(double radius) { // 有参构造方法1
this.radius = radius;
this.color = "red";
}
public Circle(double radius, String color) { // 有参构造方法2
this.radius = radius;
this.color = color;
}
public double getRadius() { // 获取半径
return radius;
}
public void setRadius(double radius) { // 设置半径
this.radius = radius;
}
public String getColor() { // 获取颜色
return color;
}
public void setColor(String color) { // 设置颜色
this.color = color;
}
public double getArea() { // 计算面积
return Math.PI * radius * radius;
}
public String toString() { // 输出信息
return "Circle[radius=" + radius + ",color=" + color + "]";
}
}
```
Cylinder.java:
```
public class Cylinder extends Circle {
private double height;
public Cylinder() { // 无参构造方法
super(); // 调用父类的无参构造方法
this.height = 1.0;
}
public Cylinder(double height) { // 有参构造方法1
super(); // 调用父类的无参构造方法
this.height = height;
}
public Cylinder(double radius, double height) { // 有参构造方法2
super(radius); // 调用父类的有参构造方法1
this.height = height;
}
public Cylinder(double radius, double height, String color) { // 有参构造方法3
super(radius, color); // 调用父类的有参构造方法2
this.height = height;
}
public double getHeight() { // 获取高
return height;
}
public void setHeight(double height) { // 设置高
this.height = height;
}
public double getVolume() { // 计算体积
return getArea() * height;
}
public String toString() { // 输出信息
return "Cylinder[" + super.toString() + ",height=" + height + "]";
}
}
```
在 main 函数中测试:
```
public static void main(String[] args) {
Circle circle1 = new Circle(); // 测试Circle类的无参构造方法
System.out.println(circle1.toString()); // 输出信息
Circle circle2 = new Circle(2.0); // 测试Circle类的有参构造方法1
System.out.println(circle2.toString()); // 输出信息
Circle circle3 = new Circle(3.0, "blue"); // 测试Circle类的有参构造方法2
System.out.println(circle3.toString()); // 输出信息
Cylinder cylinder1 = new Cylinder(); // 测试Cylinder类的无参构造方法
System.out.println(cylinder1.toString()); // 输出信息
Cylinder cylinder2 = new Cylinder(2.0); // 测试Cylinder类的有参构造方法1
System.out.println(cylinder2.toString()); // 输出信息
Cylinder cylinder3 = new Cylinder(3.0, 4.0); // 测试Cylinder类的有参构造方法2
System.out.println(cylinder3.toString()); // 输出信息
Cylinder cylinder4 = new Cylinder(3.0, 4.0, "green"); // 测试Cylinder类的有参构造方法3
System.out.println(cylinder4.toString()); // 输出信息
System.out.println("circle1's area is " + circle1.getArea()); // 测试Circle类的计算面积方法
System.out.println("cylinder4's volume is " + cylinder4.getVolume()); // 测试Cylinder类的计算体积方法
}
```
输出结果:
```
Circle[radius=1.0,color=red]
Circle[radius=2.0,color=red]
Circle[radius=3.0,color=blue]
Cylinder[Circle[radius=1.0,color=red],height=1.0]
Cylinder[Circle[radius=1.0,color=red],height=2.0]
Cylinder[Circle[radius=3.0,color=red],height=4.0]
Cylinder[Circle[radius=3.0,color=green],height=4.0]
circle1's area is 3.141592653589793
cylinder4's volume is 113.09733552923254
```
可以看到,子类 Cylinder 中通过调用 super() 方法来调用父类 Circle 的构造函数,从而初始化父类中的属性。并且子类 Cylinder 通过继承父类 Circle 的方法 getArea() 来实现计算圆柱体的体积方法 getVolume()。
用Java编写Step1:输入半径编写-个圆类Circle,该类拥有: ①一个成员变量; Radius (私有,浮点型) ; // 存放圆的半径; ②两个构造方法 Circle( ) //将半径设为0 Circle(double r) //创建Circle对象时将半径初始化为r ③三个成员方法 double getArea() //获取圆的面积 double getPerimeter( ) //获取圆的周长输出周长和圆面积
好的,以下是用Java编写的Circle类代码:
```java
public class Circle {
private double radius; // 存放圆的半径
// 构造方法1:将半径设为0
public Circle() {
this.radius = 0;
}
// 构造方法2:创建Circle对象时将半径初始化为r
public Circle(double r) {
this.radius = r;
}
// 获取圆的面积
public double getArea() {
return Math.PI * this.radius * this.radius;
}
// 获取圆的周长
public double getPerimeter() {
return 2 * Math.PI * this.radius;
}
}
```
接下来是使用Circle类计算圆的周长和面积的代码:
```java
public class Main {
public static void main(String[] args) {
Circle c1 = new Circle();
Circle c2 = new Circle(5);
System.out.println("圆c1的周长是:" + c1.getPerimeter());
System.out.println("圆c1的面积是:" + c1.getArea());
System.out.println("圆c2的周长是:" + c2.getPerimeter());
System.out.println("圆c2的面积是:" + c2.getArea());
}
}
```
输出结果如下:
```
圆c1的周长是:0.0
圆c1的面积是:0.0
圆c2的周长是:31.41592653589793
圆c2的面积是:78.53981633974483
```
阅读全文