【打印不同的图形】
1、案例描述
本案例要求编写一个程序,可以根据用户要求在控制台打印出不同的图形。例如,用户自定义半径的圆形和用户自定义边长的正方形。
2、案例目的
(1)学会分析“打印不同的图形”案例的实现思路
(2)完成“打印不同的图形”案例的代码编写、编译及运行
(3)掌握抽象类的应用
(4)掌握方法的重写
(5)掌握继承的概念及其应用
3、运行结果
4、实现代码
package cn.itcast.example;
import java.util.Iterator;
abstract class MyPoint{
public abstract void show();
}
//打印正方形
class MyPrintSquare extends MyPoint{
@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();
}
}
}
//打印圆形
class MyPrintCircle extends MyPoint{
@Override
public void show() {
for(int y = 0;y<=2*5;y+=2) {
int x = (int)Math.round(5-Math.sqrt(2*5*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 example {
public static void myShow(MyPoint a) {
a.show();
}
public static void main (String[] arge) {
MyPoint mp1 = new MyPrintSquare();
MyPoint mp2 = new MyPrintCircle();
myShow(mp1);
myShow(mp2);
}
}