用Java编写一个矩形类(Rect)与圆类(Circle)
时间: 2024-06-03 09:09:45 浏览: 13
Rect类的代码如下:
public class Rect {
private int width;
private int height;
public Rect(int width, int height) {
this.width = width;
this.height = height;
}
public int getArea() {
return width * height;
}
public int getPerimeter() {
return 2 * (width + height);
}
}
Circle类的代码如下:
public class Circle {
private int radius;
public Circle(int radius) {
this.radius = radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}
这两个类分别表示矩形和圆形,都有相应的属性和方法来计算面积和周长。
相关问题
用Java 定义一个抽象类 Shape,它包含两个抽象方法:计算面积的mianJi()方法,计算周长 的 zhouChang()方法,从Shape 类派生出圆形Circle类和矩形 Rect类,分别使用构造函 数初始化Circle 类的半径 r和Rect 类的长a宽 b,这两个类都使用mianJi()方法计算面 积,用zhouChang()方法计算周长。编写程序计算半径为10cm的圆形面积和长为10cm宽 为6cm的矩形周长。
好的,这是一个经典的面向对象编程问题,我可以帮你用Java语言实现。以下是代码实现:
```java
abstract class Shape {
public abstract double mianJi();
public abstract double zhouChang();
}
class Circle extends Shape {
private double r;
public Circle(double r) {
this.r = r;
}
public double mianJi() {
return 3.14 * r * r;
}
public double zhouChang() {
return 2 * 3.14 * r;
}
}
class Rect extends Shape {
private double a;
private double b;
public Rect(double a, double b) {
this.a = a;
this.b = b;
}
public double mianJi() {
return a * b;
}
public double zhouChang() {
return 2 * (a + b);
}
}
public class Main {
public static void main(String[] args) {
double r = 10;
Circle c = new Circle(r);
System.out.printf("半径为%.1fcm的圆形面积为%.1fcm²\n", r, c.mianJi());
double a = 10;
double b = 6;
Rect rect = new Rect(a, b);
System.out.printf("长为%.1fcm宽为%.1fcm的矩形周长为%.1fcm\n", a, b, rect.zhouChang());
}
}
```
输出结果:
```
半径为10.0cm的圆形面积为314.0cm²
长为10.0cm宽为6.0cm的矩形周长为32.0cm
```
注意:Java语言中需要在抽象类的方法前面加上 `abstract` 关键字,并且实现这些抽象方法的类必须重写这些方法。
帮我用java写一个项目,题目: 1、建立一个抽象Shape类,Shape类有计算周长perimeter( )和面积area( )两种抽象方法。 2、Shape类有Circle(圆形)和Rect(矩形)子类。 3、Rect类有cha( )方法用于比较长宽的差,若长大于宽输出“长比宽大”,长宽相等输出“长度与宽度相等”,否则输出“宽比长大”。 5、要提供Circle和Rect类重写父类Shape的perimeter( )和area( )方法。 6、Circle类要有静态常量PI(圆周率)。 7、为Circle类和Rect类的属性赋初值。 8、编写测试类TestShape,测试上述程序。
很高兴为您解答,以下是使用java编写该项目的代码:public abstract class Shape {
// 计算周长
public abstract double perimeter();
// 计算面积
public abstract double area();
} public class Circle extends Shape {
public static final double PI = 3.14;
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double perimeter() {
return 2 * PI * radius;
}
@Override
public double area() {
return PI * radius * radius;
}
} public class Rect extends Shape {
private double width;
private double length;
public Rect(double width, double length) {
this.width = width;
this.length = length;
}
// 比较长宽差
public String cha() {
if (width > length) {
return "长比宽大";
} else if (width == length) {
return "长度与宽度相等";
} else {
return "宽比长大";
}
}
@Override
public double perimeter() {
return (width + length) * 2;
}
@Override
public double area() {
return width * length;
}
} public class TestShape {
public static void main(String[] args) {
Circle c = new Circle(3.0);
System.out.println("圆的周长:" + c.perimeter());
System.out.println("圆的面积:" + c.area());
Rect r = new Rect(3.0, 4.0);
System.out.println("矩形的周长:" + r.perimeter());
System.out.println("矩形的面积:" + r.area());
System.out.println("长宽比:" + r.cha());
}
}
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)