编写一个程序,可以根据用户要求在控制台打印出不同的图形。例如,用户自定义半径的圆形和用户自定义边长的正方形。打印方形子类MyPrintSquare,重写show()方式用于实际输出边长为5的正方形。打印圆形子类MyPrintCircle,重写show()方式用于实际输出半径为5的圆
时间: 2023-06-03 16:07:49 浏览: 273
打印各种图型
形。请问,您是否能帮我实现这个程序?
当然可以,这个程序可以使用Java语言编写。您需要先定义一个抽象的图形类,然后分别定义圆形和正方形的子类,并在子类中实现具体的打印方法。在控制台中打印图形可以使用ASCII字符组成,比如字符'+'可以代表方形的边界。以下是一个可能的实现方法:
```java
abstract class MyShape {
public abstract void show();
}
class MySquare extends MyShape {
private int sideLength;
public void setSideLength(int sideLength) {
this.sideLength = sideLength;
}
@Override
public void show() {
for (int i = 0; i < sideLength; i++) {
for (int j = 0; j < sideLength; j++) {
System.out.print("+ ");
}
System.out.println();
}
}
}
class MyCircle extends MyShape {
private int radius;
public void setRadius(int radius) {
this.radius = radius;
}
@Override
public void show() {
for (int i = -radius; i <= radius; i++) {
for (int j = -radius; j <= radius; j++) {
if (i*i + j*j <= radius*radius) {
System.out.print("+ ");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
public class Main {
public static void main(String[] args) {
MyShape shape;
shape = new MySquare();
((MySquare)shape).setSideLength(5);
shape.show();
shape = new MyCircle();
((MyCircle)shape).setRadius(5);
shape.show();
}
}
```
注意,实际输出的效果会受到控制台字体的影响,可能会出现图形变形等问题。为了实现更加精确的打印效果,可以考虑使用图形库,比如JavaFX。
阅读全文