Java基础案例4-1打印不同的图形

案例描述:

本案例要求编写一个程序,可以根据用户要求在控制台打印出不同的图形。例如,用户自定义半径的圆形和用户自定义边长的正方形。

运行结果:

 首先创建一个统一的父类。

package 面向对象程序思想下;

//创建所有的功能类的父类,让他们实现他的静态的show方法
public abstract class MyPrint {
	public abstract void show();
}

接下来创建子类,完成打印图形:

package 面向对象程序思想下;

//这个是打印圆形的类
/**
 * 2022/3/13
 */
public class MyPrintCircle extends MyPrint{
    @Override
    public void show() {
        for (int y = 0 ; y <= 2*5 ; y += 2){
            // Math.round 按照四舍五入返回最接近参数的int值
            // Math.sqrt 返回算数平方根
            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("*");
        }
 
    }
}
package 面向对象程序思想下;

import java.util.Scanner;

//创建子类继承抽象类,实现打印长方体
public class MyPrintSquare extends MyPrint{
	Scanner str=new Scanner(System.in);
	
	public void show(){
		System.out.println("输入一个数字");
		int str1=str.nextInt();
		//使用双层循环,打印边
		for(int i=0;i<str1;i++) {
			for(int j=0;j<str1;j++) {
				System.out.print("*");
			}
			//这个作用是用来换行的
			System.out.println();
		}
		
	}
}

最后就是测试类;

package 面向对象程序思想下;

import java.util.Scanner;

public class MyPointTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner in=new Scanner(System.in);
		MyPrint zheng=new MyPrintSquare();
		MyPrint yuan=new MyPrintCircle();
		System.out.println("请输入要打印的图形:1:正方形。2.圆");
		int d=in.nextInt();
		if(d==1) {
			zheng.show();
		}else if(d==2) {
			yuan.show();
		}
	}

}

总结:本次练习我学到啦如何使用继承,计算打印*等,学会使用内循环。

  • 12
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灭掉c与java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值