public abstract class MyPrint { public abstract void show(); } public class MyPrintSquare extends MyPrint { @Override public void show() { //打印正方形 for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (j==0||j==4){ System.out.print("*"); }else if (i==0||i==4){ System.out.print("*"); }else { System.out.print(" "); } } System.out.println(); } } } public class MyPrintCircle extends MyPrint { @Override public void show() { //打印圆形 for (int y = 0; y <= 10; y +=2) { int x =(int)Math.round(5-Math.sqrt(10*y-y*y)); int len =2*(5-x); for (int i = 0; i <= x; i++) { System.out.print(" "); } System.out.print("*"); for (int j = 0; j <= len; j++) { System.out.print(" "); } System.out.println("*"); } } } public class Experiment5_1{ public static void main(String[] args) { MyPrint sqrare = new MyPrintSquare(); MyPrint circle = new MyPrintCircle(); sqrare.show(); circle.show(); } }
时间: 2023-06-11 10:04:23 浏览: 120
你的问题是:请问上述代码的输出结果是什么?
答案是:
*****
* *
* *
* *
*****
*
* *
* *
* *
* *
* *
* *
* *
*
这段代码定义了一个抽象类 MyPrint 和两个类 MyPrintSquare 和 MyPrintCircle,分别实现了 MyPrint 中的抽象方法 show,用于打印正方形和圆形。在主函数 Experiment5_1 中,首先创建一个 MyPrintSquare 对象和一个 MyPrintCircle 对象,然后分别调用它们的 show 方法,打印出正方形和圆形的图案。
相关问题
Java1)创建父类MyPrint类,包含show()方法,用于输出图形的形状。 // (2)创建子类MyPrintSquare类,重写show ()方法,用“*”打印出边长为5的正方形。 // (3)创建子类MyPrintCircle类,重写show ()方法, 用“*”打印出半径为5的圆。 // (4)创建测试类,设计一个myshow(MyPrint a)方法,实现输出的功能:如果为MyPrintSquare, 输出边长为5的正方形,如果为MyPrintCircle对象, // 输出半径为5的圆;主函数中创建MyPrintSquare、MyPrintCircle的对象,分别调用myshow,检查输出结果。
以下是 Java 代码实现:
MyPrint.java(父类)
```java
public class MyPrint {
public void show() {
System.out.println("图形的形状");
}
}
```
MyPrintSquare.java(子类)
```java
public class MyPrintSquare extends MyPrint {
@Override
public void show() {
int n = 5; // 正方形的边长
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
```
MyPrintCircle.java(子类)
```java
public class MyPrintCircle extends MyPrint {
@Override
public void show() {
int r = 5; // 圆的半径
for (int i = -r; i <= r; i++) {
for (int j = -r; j <= r; j++) {
if (i * i + j * j <= r * r) {
System.out.print("* ");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
```
Test.java(测试类)
```java
public class Test {
public static void myshow(MyPrint a) {
a.show();
}
public static void main(String[] args) {
MyPrintSquare square = new MyPrintSquare();
MyPrintCircle circle = new MyPrintCircle();
myshow(square);
System.out.println();
myshow(circle);
System.out.println();
}
}
```
解释一下代码:
1. 首先定义父类 `MyPrint`,其中包含一个 `show()` 方法,用于输出图形的形状;
2. 然后定义子类 `MyPrintSquare` 和 `MyPrintCircle`,它们分别继承自 `MyPrint`,并重写了 `show()` 方法,分别用“*”打印出边长为 5 的正方形和半径为 5 的圆;
3. 最后定义一个测试类 `Test`,其中定义了一个 `myshow(MyPrint a)` 方法,它接收一个 `MyPrint` 类型的参数,并调用它的 `show()` 方法进行输出;
4. 在 `main` 函数中创建 `MyPrintSquare` 和 `MyPrintCircle` 的对象,并分别调用 `myshow` 方法进行输出。
希望这个代码能够帮到你!
用java编写一个程序,可以根据用户要求在控制台打印出不同的图形。例如,用户自定义半径的圆形和用户自定义边长的正方形。(Experiment5_1)提示:打印形状是一个父类MyPrint,它应该有一个输出图形的方法show(),此方法应该是抽象方法。打印方形子类MyPrintSquare,重写show()方式用于实际输出边长为5的正方形。打印圆形子类MyPrintCircle,重写show()方式用于实际输出半径为5的圆。创建一个测试类,设计一个myShow(MyPrint a)方法用来实现打印正方形和圆形。在主函数中创建两种对象,并调用myShow(),来查看结果。
好的,这是您的第一个问题。以下是我的回答:
这是一个Java编写的程序,可以根据用户要求在控制台打印出不同的图形。用户可以自定义半径的圆形和边长的正方形。程序包含父类MyPrint和两个子类MyPrintSquare和MyPrintCircle。MyPrint中有一个抽象方法show(),两个子类都重写了这个方法,用于实际输出正方形和圆形。测试类中包含一个myShow(MyPrint a)方法,用于实现打印正方形和圆形。在主函数中创建了两个对象,并调用了myShow()方法来查看结果。
请问还有其他问题需要我回答吗?
阅读全文