优化这段代码 class Rectangle { int length; int width; Rectangle(int length,int width) { this.length=length; this.width=width; } public int getArea() { return length*width; } public int getGirth() { return (length+width)*2; } } class Circle { double radius; public static final double PI=3.14; Circle(double radiuse) { this.radius=radius; } public double getArea( ) { return PI*radius*radius; } public double getGirth( ) { return 2*PI*radius; } } import java.util.Scanner; public class TestDemo { public static void main(String args[ ]) { Scanner sc=new Scanner(System.in); { Rectangle R1=new Rectangle (); System.out.println("构建矩形并计算其面积和周长"); System.out.println("请输入矩形的长: "); R1.setlength=sc.nextint(); System.out.println("请输入矩形的宽: "); R1.setwidth=sc.nextint(); System.out.println("矩形的面积是: "+R1.getArea()); System.out.println("矩形的周长是: "+R1.getGirth()); Circle C1=new Circle(); System.out.prinln("构建图形并计算其面积和周长:"); System.out.println("请输入圆形的半径:"); C1.setradius=sc.nextdouble(); System.out.println("圆形的面积是:"+C1.getArea()); System.out.println("圆形的周长是:"+C1.getGirth()); } } }
时间: 2023-05-21 17:07:37 浏览: 158
为了优化这段代码,我们可以:
1. 给 Rectangle 类和 Circle 类添加构造函数,在创建对象时就可以直接传入参数,避免使用 set 方法;
2. 在 TestDemo 类中使用不同的 Scanner 对象,而不是只使用一个,可以提高代码的灵活性;
3. 修改 Circle 类中的构造函数参数名,避免和类中的成员变量名冲突。
修改后的代码如下:
```
class Rectangle {
int length;
int width;
Rectangle(int length, int width) {
this.length = length;
this.width = width;
}
public int getArea() {
return length * width;
}
public int getGirth() {
return (length + width) * 2;
}
}
class Circle {
double radius;
public static final double PI = 3.14;
Circle(double radius) {
this.radius = radius;
}
public double getArea() {
return PI * radius * radius;
}
public double getGirth() {
return 2 * PI * radius;
}
}
import java.util.Scanner;
public class TestDemo {
public static void main(String args[]) {
Scanner sc1 = new Scanner(System.in);
Scanner sc2 = new Scanner(System.in);
{
System.out.println("构建矩形并计算其面积和周长");
System.out.println("请输入矩形的长: ");
int length = sc1.nextInt();
System.out.println("请输入矩形的宽: ");
int width = sc1.nextInt();
Rectangle R1 = new Rectangle(length, width);
System.out.println("矩形的面积是: " + R1.getArea());
System.out.println("矩形的周长是: " + R1.getGirth());
System.out.println("构建图形并计算其面积和周长:");
System.out.println("请输入圆形的半径:");
double radius = sc2.nextDouble();
Circle C1 = new Circle(radius);
System.out.println("圆形的面积是:" + C1.getArea());
System.out.println("圆形的周长是:" + C1.getGirth());
}
}
}
```
阅读全文
相关推荐



















